接口自动化测试 unittest+request+excel
Posted hemingwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口自动化测试 unittest+request+excel相关的知识,希望对你有一定的参考价值。
上一节是接口测试单条测试get/post,加上封装。
通过学习到unittest,使用其中的unittest.TestCase和Testsuit
#!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import unittest from conn.run_demo import RunMain # 上一节写的类,进行调用 import htmlTestRunner import json class TestMethod(unittest.TestCase): # 定义一个类,集成自unittest.TestCase def setUp(self): self.run = RunMain() # 在初始化方法实例化一个对象,这样就不需要在每个测试用例中在进行实例化 def test01(self): ‘‘‘此用例正常‘‘‘ # 描述用例 url = ‘http://192.168.0.157:18005/oauth/token‘ data = ‘clientId‘: ‘xxxxxxxxxxxx‘, ‘password‘: ‘123456‘, ‘userName‘: ‘admin‘, ‘VerificationCode‘: ‘‘, ‘VerificationCodeKey‘: "xxxxxxxxxxxx" r = self.run.run_main(url, ‘POST‘, data) re = json.loads(r) self.assertEqual(re[‘msg‘], ‘OK‘, ‘pass‘) # 断言出参的内容,进行判断,就跟测试用例里面的实际结果预期结果一样 def test02(self): ‘‘‘此用例正常‘‘‘ # 描述用例 url = ‘http://192.168.0.157:18005/oauth/token‘ data = ‘clientId‘: ‘xxxxxxxxxxx‘, ‘password‘: ‘123456‘, ‘userName‘: ‘admin‘, ‘VerificationCode‘: ‘‘, ‘VerificationCodeKey‘: "xxxxxxxxxxx" r = self.run.run_main(url, ‘POST‘, data) re = json.loads(r) self.assertEqual(re[‘msg‘], ‘OK‘, ‘Pass‘) ‘‘‘ 断言前,用json库的json.loads()进行解码,因为之前传参的时候用json.dumps()对json格式的编码, 虽然python字典格式与json格式都是一样的,但他们是不一样的;所以要进行编码解码操作 ‘‘‘ def test03(self): ‘‘‘错误的客户端‘‘‘ url = ‘http://192.168.0.157:18005/oauth/token‘ data = ‘clientId‘: ‘xxxxxxxxx‘, ‘password‘: ‘123456‘, ‘userName‘: ‘admin‘, ‘VerificationCode‘: ‘‘, ‘VerificationCodeKey‘: "xxxxxxxx" r = self.run.run_main(url, ‘POST‘, data) re = json.loads(r) self.assertEqual(re[‘msg‘], ‘OK‘, ‘Pass‘) #@unittest.skip(‘test04‘) skip()可以进行跳过这条测试用例操作 def test04(self): ‘‘‘密码错误‘‘‘ url = ‘http://192.168.0.157:18005/oauth/token‘ data = ‘clientId‘: ‘xxxxxxxxxxxxxxxxxx‘, ‘password‘: ‘1123456‘, ‘userName‘: ‘admin‘, ‘VerificationCode‘: ‘‘, ‘VerificationCodeKey‘: "xxxxxxxxxxxxxxxxxx" r = self.run.run_main(url, ‘POST‘, data) re = json.loads(r) self.assertEqual(re[‘msg‘], ‘OK‘, ‘Pass‘) if __name__ == ‘__main__‘: suite = unittest.TestSuite() # 调用unittest的TestSuite(),理解为管理case的一个容器(测试套件) suite.addTest(TestMethod(‘test001‘)) # 向测试套件中添加用例,"TestMethod"是上面定义的类名,"test01"是用例名 suite.addTest(TestMethod(‘test002‘)) suite.addTest(TestMethod(‘test003‘)) runner = unittest.TextTestRunner() runner.run(suite)
得到结果
以上是关于接口自动化测试 unittest+request+excel的主要内容,如果未能解决你的问题,请参考以下文章
python3+requests+unittest:接口自动化测试
python+requests+unittest 搭建接口自动化测试框架
接口自动化测试 unittest+request+excel
Python+unittest+requests 接口自动化测试框架搭建 完整的框架搭建过程 实战