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'}