业务流测试(各种功能) 对应的是单接口测试
业务流本质上还是接口关联,需要多个接口一起测试,并且完成业务流程,即同时完成多个接口的测试,观察业务流程是否成功,也是一次集成测试.
方法1:
直接把要关联的接口封装到APICase里,然后填入访问接口时所需要的参数,每次执行用例的时候调用一次,从关联接口中获得测试接口所需要的数据,测试用例执行的只是被测接口
优点:简单易懂
缺点:如果业务流需要多个接口,就要封装多个访问接口的函数,并且多次调用,代码变得繁琐
方法2:
不需要封装访问关联接口的函数,把测试需要关联接口数据都写在excel表格中,每次执行测试用例方法时候会一一访问不同的接口,获取返回结果中的对应数据,得到下一个接口所需要的参数,测试用例执行的是所有关联接口和被测接口
优点:代码变得简洁,方法都经过封装放入一个类中,而且关联接口比较多的时候,不需要一一封装和调用,直接通过测试用例函数进行访问,只需要从响应结果里获取其他接口需要的数据即可
缺点:难度较大,逻辑较复杂,调试不方便,可以通过日志观察
封装正则表达式替换数据的函数
-在APICase类里定义实例方法/类方法
@classmethod
def replace_data(cls,string):
# 给指定的字符串替换成动态数据
result = re.finditer("#(.*?)#", string)
for el in result:
old = el.group()
prop_name = el.group(1)
string = string.replace(old, str(getattr(cls, prop_name)))
return string
定义需要替换的数据名称,获得替换数据
参数填入需要替换的字符串,还需要准备的数据有替换的内容,内容可以从配置文件获取,作为前置条件,在开始执行测试用例函数之前获取(需要替换的数据名称要跟excel表格里面标记的##对应数据名称一致)
访问登录接口,需要有账号和密码,审核接口需要管理员操作.所以需要获得投资人和借款人还有管理员的账号和密码,我们把投资人和借款人设定为同一个人
@ddt
class TestInvest(unittest.TestCase,APICase):
@classmethod
def setUpClass(cls) -> None:
cls.investor_phone = secret_config.investor["mobile_phone"]
cls.investor_pwd =