"""
功能:登录接口的业务实现测试用例
"""import unittest
from api.api_login import ApiLogin
from parameterized import parameterized
from tools.read_json import ReadJson
#读取json数据defget_data():
datas=ReadJson("login.json").read_json()#建立空列表,添加读取的json数据
arrs=[]#遍历多条json数据用例for data in datas.values():
arrs.append((data.get("url"),
data.get("mobile"),
data.get("code"),
data.get("expect_result"),
data.get("status_code")))return arrs
#登录测试类classTestLogin(unittest.TestCase):#使用参数化动态获取参数数据
@parameterized.expand(get_data())deftest_login(self,url,mobile,code,expect_result,status_code):#设置临时静态参数,url、mobile、code(有效一分钟)# url="http://ttapi.research.itcast.cn/app/v1_0/authorizations"# mobile="18264152106"# code="965754"#调用登录方法,返回响应对象
result=ApiLogin().api_post_login(url,mobile,code)print("响应结果:",result.json())#断言,响应信息,状态码
self.assertEquals(expect_result,result.json()['message'])
self.assertEquals(status_code,result.status_code)if __name__ =='__main__':
unittest.main()# 响应结果: {'message': 'OK', 'data': {'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODUxMzA1ODksInVzZXJfaWQiOjEyMzEwNTIyNDk1Njg5MDMxNjgsInJlZnJlc2giOmZhbHNlfQ.QFy0lXJ1So4bwJDLDwjbC6o2KeZyFYnYf2uMz-OAyMo', 'refresh_token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODYzMzI5ODksInVzZXJfaWQiOjEyMzEwNTIyNDk1Njg5MDMxNjgsInJlZnJlc2giOnRydWV9.TcgtEJs1p87aM5k5g9gqe46uSvddR_9MA9dMkpf9uVQ'}}
4、json数据login.json
{"login001":{"url":"http://ttapi.research.itcast.cn/app/v1_0/authorizations","mobile":"18264152106","code":"222337","expect_result":"OK","status_code":201},"login002":{"url":"http://ttapi.research.itcast.cn/app/v1_0/authorizations","mobile":"18264152101","code":"222337","expect_result":{"mobile":"18264152101 is not a valid mobile"},"status_code":400}}