我们知道在一般的类中,如果要将这个类中某个方法内的参数传递给下一个方法,可以使用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()
运行结果: