尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

python+request实现接口-上下接口关联参数化

python+request实现接口-上下接口关联参数化 业务介绍登陆操作业务流程分为两个接口第二个接口的参数依赖于第一个接口如从中获取企业号信息用户名和密码但是这些前端页面没有输入的地方前端页面只能点击在这个时候我们就需要通过接口来测试业务异常用户名、企业号、密码这些必填项做非空测试。参数化接送文件编写设置一个typetype值包括success、tId_None、user_None、psd_None分别表示成功登陆、企业号为空、账号为空、密码为空。json文件loginForm.json{test_get_login_form:[{desc:授权成功,username:13426251955,password:123321,type:success,status_code:200,code:200,message:登录授权成功},{desc:登陆-设置tenantId is null,username:13426251956,password:123321,type:tId_None,status_code:200,code:500,message:用户名或密码错误。},{desc:登陆-设置username is null,username:13426251987,password:123321,type:user_None,status_code:200,code:500,message:用户名或密码错误。},{desc:登陆-设置password is null,username:13426251988,password:123321,type:psd_None,status_code:200,code:403,message:账号或密码不正确}]}脚本编写先初始化第二个接口的传参然后再通过if条件判断不同的type类型使用不同的传参importunittestimportrequestsimportloggingfromyxf_p01importappfromyxf_p01.api.loginAPIimportloginAPIimportyxf_p01.appfromparameterizedimportparameterizedfromyxf_p01.utilsimportread_param_data,assert_utils,DButilsclasstest_login(unittest.TestCase):#接口实例化、session实例化defsetUp(self)-None:self.login_apiloginAPI()self.sessionrequests.Session()#关闭sessiondeftearDown(self)-None:self.session.close()parameterized.expand(read_param_data(login.json,test_get_login,username,password,status_code,code,message))deftest01_login(self,username,password,status_code,code,message):#第一个接口参数、接口调用方法、响应断言responseself.login_api.getLoginAccout(self.session,username,password)logging.info(login01 response {}.format(response.json()))assert_utils(self,response,status_code,code,message)parameterized.expand(read_param_data(loginForm.json,test_get_login_form,username,password,type,status_code,code,message))deftest02_loginForm(self,username,password,type,status_code,code,message):#第一个接口responseself.login_api.getLoginAccout(self.session,username,password)logging.info(login01 response {}.format(response.json()))assert_utils(self,response,200,200,获取账号列表)#初始化第二个接口的参数self.tenantIdself.usernameself.passwordiftypesuccess:#正向成功self.tenantIdresponse.json().get(data)[0][tenantId]self.usernameusername self.passwordpasswordeliftypetId_None:#第一个参数非空self.usernameusername self.passwordpasswordeliftypeuser_None:#第二个参数非空self.tenantIdresponse.json().get(data)[0][tenantId]self.passwordpasswordelse:#第三个参数非空self.tenantIdresponse.json().get(data)[0][tenantId]self.usernameusername#第二个接口responseself.login_api.getLogin02(self.session,tenantIdself.tenantId,usernameself.username,passwordself.password)logging.info(loginForm response {}.format(response.json()))assert_utils(self,response,status_code,code,message)执行结果选择左侧执行文件-》点击右键-》运行即可如图
返回列表