api测试的请求包装器

wrapA的Python项目详细描述


Wrapapi

用于API测试的请求包装器

用法

conftest

conftest.py

importpytestfromwrapapiimportApplication,Settings@pytest.fixture(scope='session')defsettings()->Settings:config=Settings()config.base_url='http://localhost:5555'config.headers['Autorization']='Basic secret'returnconfig@pytest.fixture(scope='session')defclient(settings)->Application:app=Application(settings)client=app.create()yieldclientclient.close()@pytest.fixture(scope='function')defapp(client)->Application:yieldclientclient.report.build()

使用pytest fixture进行测试

deftest_main(app):response=app.get('/api/main',status=200)response.json.should.be.is_instance(list)deftest_main_item(app):response=app.get('/api/main/666',status=200)response.json.should.be.equal({'id':666,'name':'test'})

测试用例

使用测试套件

fromwrapapiimportTestSuiteclassTestExample(TestSuite):deftest_main(self):response=self.app.get('/api/main',status=200)response.json.should.be.is_instance(list)deftest_main_item(self):response=self.app.get('/api/main/666',status=200)response.json.should.be.equal({'id':666,'name':'test'})

断言错误

如果有任何错误,请使用完整的请求数据引发异常:

E           AssertionError: 
E===========================================================
E           GET: http://localhost:5555/api/main/666
E           -----------------------------------------------------------
E               Status: 200
E               Body: None
E               Headers: {'Date': 'Wed, 27 Mar 2019 12:17:48 GMT', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '51'....}E===========================================================
E           Not equal: {'id': 666, 'name': 'test'}=={'id': 1, 'name': 'test'}
E                -> expected: {'id': 666, 'name': 'test'}
E                -> current: {'id': 1, 'name': 'test'}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么程序显示空结果?   java应用程序在测试设备上调试时工作正常,但在发布版apk中没有,它没有获得post。来自firebase的类变量   java Android:从主活动按钮确定在listview中选中哪个复选框   在Spring中添加@OneToOne注释时启动ApplicationContext时发生java错误   用JAVA Android实现矩阵计算的最快方法   SpringJava语义有没有更好的编写方法?   java从hashmap中减去两个值后返回最小差值的键?   Java中的静态初始化顺序:Netty 4.0.7的例外   java如何检查用户输入是否为字符串   循环Java计数单词索引   java如何使用以下代码将视频流传输到Android异步Http服务器?   java如何在jtable的所有行中循环   java如何使用maven将unicode插入mysql   java使用安卓加速远程数据检索   java试图模拟麦克风(javax.sound.sampled)   swing SwingWorker从不归还任何东西?(爪哇)   首次在Android Studio上未加载java LibGDX文件   java如何在多个Mysql服务器上设置限制和偏移?   如何防止从java连接到mongodb时登录控制台?