接口自动化-python unittest+requests+HTMLrunner

 

从2015年毕业入行软件测试,快满4年了,之前技术分享都在百度贴吧上面,现在正式开始在博客中记录工作技术,努力成长,加油

 

接口测试的步骤
1.组装好该接口需要的参数数据
2.使用get或post附带参数数据一起传给要测试的接口
3.将第2步服务器的响应数据进行验证
手动测试接口太繁琐,重复工作内容多

接口一般较小改动,故接口自动化维护成本更低
1)接口自动化更早介入,更早发现问题并以更低的成本修复
2)缩短产品研发周期,缩短整个项目的上线时间
3)一次编写,可多次使用,提高测试效率

 

接口自动化需求

1、接口编写方便。
2、方便调试接口。
3、支持数据初始化。
4、生成测试报告。
5、支持参数化。

如何实现这些需求?

可以利用现有开源的框架和库自己定制
python Unittest+Request+HTMLRunner
unittest可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试报告

 

通过requests库发送HTTP/HTTPS请求
通过unittest单元测试框架组织和运行测试用例
通过HTMLTestRunner生成HTML格式的测试报告

接口自动化-python unittest+requests+HTMLrunner

接口自动化-python unittest+requests+HTMLrunner

 接口自动化-python unittest+requests+HTMLrunner

 

 接口自动化-python unittest+requests+HTMLrunner

 

Unitest

unittest.TestCase:TestCase类,所有测试用例类继承的基本类。
class BaiduTest(unittest.TestCase):

unittest.main():使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。

unittest.TestSuite():unittest的TestSuite()类是用来创建测试套件的,由TestLoader加载TestCase到TestSuite

通过HTMLTestRunner类下面的run()方法来运行suite所组装的测试用例,入参为测试套件TestSuite。

unittest.defaultTestLoader(): defaultTestLoader()类,通过该类下面的discover()方法可自动根据测试目录start_dir匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件,因此可以直接通过run()方法执行用例。

 

 TESTCASE类

 

setUp():setUp()方法用于测试用例执行前的初始化工作。例如测试用例中需要访问数据库,可以在setUp中建立数据库连接并进行初始化。

 

tearDown():tearDown()方法用于测试用例执行之后的善后工作。如关闭数据库连接。

 

assert*():一些断言方法:在执行测试用例的过程中,最终用例是否执行通过,是通过判断测试得到的实际结果和预期结果是否相等决定的。

 

assertEqual(a,b,[msg='测试失败时打印的信息']):断言a和b是否相等,相等则测试用例通过。

 

assertTrue(x,[msg='测试失败时打印的信息']):断言x是否True,True则测试用例通过。

 

执行流程

写好TestCase
由TestLoader加载TestCase到TestSuite
然后由Runner来运行TestSuite中的TeastCase,运行的结果保存在Result中。
调用Runner中的run()来执行用例。
根据执行结果result生成报告

 

上一篇:c# – 如何为BadRequest编写单元测试用例?


下一篇:93-臭虫也疯狂