• python unittest TestCase间共享数据(全局变量赋值),testcase间的参数传递:接口自动化测试作为小实例


    一、问题原因

    使用unittest框架进行接口自动化测试:
    多个接口联调测试时,会出现这样的情况,前面的接口返回值,需要后面接口的参数进行测试。
    比如
    1、登录之后修改用户信息,修改用户信息接口,需要登录接口的session,传到post请求中。
    2、通过提交密保问题及答案,修改密码时,修改密码接口,需要提交密保问题及接口的token值作为参数传递到用户信息中。修改密码这个接口的一个参数,就是交密保问题及接口的返回值token。
    出现这两种情况应该怎样处理传递这个参数呢?

    二、问题解决
    (1)方法一:如果在面向对象方法中:
    可以将前一个接口数据作为一个返回值传递出来,再用变量接收这个返回值,进行传递

    response = requests.post(url,data = user_info1).text
    print(response)
    #获取响应的token值,利用loads方法转换为dict(),对这个dict用key取值
    response_dict = json.loads(response)
    forget_token = response_dict['data']
    return forget_token

    (2)方法二:如果是在独立接口测试中。
    可以将前一个接口,放在初始化方法setup()中,用self.xxx接收这个值,这样这个参数就作为类属性,后面用例接收这个self.xxx,AAA = self.xxx即可

    def setUp(self):
    url = "http://localhost:8080//forget_axxxr.do"
    uerinfo = {'username': '小肥','question':'你今天吃了没','answer':'没胃口吃'}
    response = requests.post(url,data = uerinfo).text #这个请求对象,调用post方法传入参数
    print(response)
    response_dict = json.loads(response)
    self.get_token = response_dict['data']
    
    def test_case2(self):
    url1 = "http://localhost:8080//forgetxxxx.do"
    Forget_token = self.get_token
    uerinfo1 = {'username': 小肥','passwordNew':'666666','forgetToken':Forget_token}
    response1 = requests.post(url1,data = uerinfo1).text #这个请求对象,调用post方法传入参数
    print(response1)

    (3)方法三:如果是多个接口联调, 不同用例是独立的。
    需要设置一个全局变量,这样所有的case就可以共享这个变量
    在类的最前面定义这个变量

    #定义token的全局变量
    global Token
    12
    接收这个变量token
    #接收这个token值
    globals ()['Token'] = response_dict['data']



    声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作
  • 相关阅读:
    弹出层模板
    Target runtime Apache Tomcat v7.0 is not defined.解决方法
    Referenced file contains errors
    angular 双向绑定demo
    VB 6.0 ByVal ByRef 的区别
    AutoResetEvent 类的学习网站
    C# 各种定时器区分
    C# 占用系统资源少的延时
    C# API sendmessage()函数获 部分讲解 (挺不错的)
    C# API sendmessage()函数 部分讲解
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/15417888.html
Copyright © 2020-2023  润新知