虽然开发会在自己的代码中写单元测试,但就目前的学习过程,即是依赖于requests模块发起请求,应用unittest执行存储在excel中的测试用例,实现接口自动化测试。
@paramunittest.parametrized()
首先对于获取到的excel中的用例,需要应用paramunittest实现参数化的数据汇总,它是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例。
#test_xls为从excel中获取到的测试用例list
#在建立引用unittest.Testcase类之前写下方语句
@paramunittest.parametrized(*test_xls)
定义setParameters
建立的测试类中首先需要将前文得到的数据进行参数化操作,即用变量来存储参数。
def setParameters(self,case_name,path,query,body,method):
self.case_name=str(case_name)
self.path=str(path)
self.query=str(query)
self.body = str(body)
self.method=str(method)
#括号中参数的名字需要与excel中第一行的名字(key)保持一致。
建立测试方法,即执行测试用例的步骤
- 首先,想要执行的每一个方法命名需要以test开头,不以test开头不会被执行;
- 其次,可以建立setUp()以及tearDown()方法,在每一条测试用例执行前以及执行后,这两个方法均会被执行一遍;
- 最后,在测试方法中,利用上方获得的测试用例数据,引用requests模块发起请求,执行测试过程。
断言
在测试方法中,可通过添加断言,判断当前测试用例是否执行通过。
#ss为响应的python对象
if self.case_name=='users':
self.assertEqual(ss['name'],'123')
执行
在当前文件的最后添加下属语句,可直接执行单元测试。
if __name__ == '__main__':
unittest.main()
注意:在pycharm里面运行的时候,最后鼠标要放到上方的if下方执行,否则会提示empty suite。
自我记录,有错误欢迎指正~
网友评论