unittest框架类方法之间如何实现传参

tech2025-06-20  7

我们知道在一般的类中,如果要将这个类中某个方法内的参数传递给下一个方法,可以使用return语句,举个例子: 下面是用户忘记密码后,向提交问题答案接口发送密保问题和答案,数据正确然后接口返回一个token值,回答完密保问题后修改密码接口需要获得这个token值来判断是否允许用户改密。

import requests class workflow_frogetpassword_test(): def tjmbwtda_test(self): url = "http://localhost:8080/jwshoplogin/user/forget_check_answer.do" userinfo = {} # 密保问题答案 userinfo = {"username": "王五1", "question": "我在哪", "answer": "中国" } # 发送密保问题答案并获取响应 response = requests.post(url, data=userinfo).text print(response) dic = {} dic = eval(response) token = dic["data"] r = response.find("data") if r > 0: print("提交密保问题接口测试通过") else: print("提交密保问题接口测试失败") return token def hdwtxgmm_test(self, token): url = "http://localhost:8080/jwshoplogin/user/forget_reset_password.do" userinfo = {} userinfo = {"username": "王五1", "passwordNew": "147258", "forgetToken": token } response = requests.post(url, data=userinfo).text print(response) r = response.find("修改密码成功") if r > 0: print("回答完密保问题后修改密码接口测试通过") else: print("回答完密保问题后修改密码接口测试失败") if __name__ == '__main__': workflowobj = workflow_frogetpassword_test() token=workflowobj.tjmbwtda_test() workflowobj.hdwtxgmm_test(token)

上面两个方法通过return传递了参数token,如果这个脚本改写成框架内的脚本,参数token又怎么传递呢。 通过下面一种方式,在第一个测试方法中先声明token为全局的变量:global token。并赋值,如下例::token = dic[“data”]。在第二个方法中就可以直接使用这个token

import requests import unittest class test_gmm(unittest.TestCase): def test_case1(self): global token url = "http://localhost:8080/jwshoplogin/user/forget_check_answer.do" userinfo = {} # 密保问题答案 userinfo = {"username": "王五1", "question": "我在哪", "answer": "中国" } # 发送密保问题答案并获取响应 response = requests.post(url, data=userinfo).text print(response) dic = {} dic = eval(response) token = dic["data"] def test_case2(self): url = "http://localhost:8080/jwshoplogin/user/forget_reset_password.do" userinfo = {} userinfo = {"username": "王五1", "passwordNew": "247258", "forgetToken": token } response = requests.post(url, data=userinfo).text print(response) if __name__ == '__main__': unittest.main()

运行结果:

最新回复(0)