1、unittest对于需要关联的请求,怎么处理(如购物接口,需要先登录)
a)把登录请求写到测试用例类的setUP函数中,这样每次调用测试用例,都会先执行setUP函数
b)全局变量的形式声明。
c)反射
如下为全局变量的例子:
from auto_api.tool.common import common_excel,common_conf,common_requests COOKIE = None class TestCases(object): def test_api(self,conf_file_name,conf_section_file,conf_section_case): global COOKIE conf_file_param = common_conf.CommonConf().conf_case_file(conf_file_name, conf_section_file) cases = common_conf.CommonConf().conf_case_file(conf_file_name, conf_section_case) file_name = conf_file_param['file_name'] sheet_name = conf_file_param['sheet_name'] datas = common_excel.CommonExcel().common_excel_read(file_name, sheet_name) if cases['case'] == 'all': #判断是执行全部测试用例,还是部分 choose_datas = datas else: choose_datas = [] for param in datas: if param['case_id'] in eval(cases['case']): choose_datas.append(param) for data in choose_datas: url = data['url'] method = data['method'] param = eval(data['param']) #值得注意的是,从excel中取出的数据都是字符串类型,需要转成字典类型 case_id = data['case_id'] res = common_requests.CommonRequests().common_requests(method, url, param,COOKIE) if res.cookies: COOKIE = res.cookies #当有cookies时,重新对COOKIE进行赋值,第一个测试用例为登录,才能进行接下里的购物 print(res.json())