首页 > 编程语言 >python接口自动化系列(10):保存全局变量

python接口自动化系列(10):保存全局变量

时间:2024-03-03 22:00:00浏览次数:33  
标签:10 python expr self value key globalVariables 全局变量

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/18033074

实现目标

如果后续有请求依赖本次请求的响应结果,那么把依赖数据保存到全局变量,比如token

 

安装模块

jsonpath用于解析json数据

pip install jsonpath

 

修改工具类

global_variable_tool.py添加方法,用于保存依赖数据

    def setVar(self,key,value):
        '''添加全局变量'''
        self.globalVars[key] = value
        logger.info(f"当前全局变量:{self.globalVars}")


    def save_global_variable(self, globalVariable, res):
        '''保存被依赖数据到全局变量中'''
        import jsonpath
        for globalv in globalVariable.split(";"):
            g = globalv.strip()
            if g:
                key = g.split('=')[0].strip()
                value_expr = g.split('=')[1].strip()
                # print("key:", key)
                # print("value_expr:", value_expr)
                logger.info(f"key={key}, value_expr={value_expr}")
                value = jsonpath.jsonpath(json.loads(res),value_expr)[0]  # 返回列表,取第一个
                self.setVar(key,value)
        # 打印当前所有全局变量
        logger.info("当前所有全局变量:{}".format(self.getVars() ))

 

修改测试类

http请求前定义res

res = None

 

http请求后添加保存全局变量逻辑:

        globalVariables = casedata["globalVariables"]
        # logger.info(">>>>>globalVariables:{}".format(globalVariables))

        # 如果有需要被后续请求用的变量数据
        if globalVariables:
            gv.save_global_variable(globalVariables, res.text)

 

运行结果

先看下测试数据:

  • 登录成功后需要保存token

 

  • 添加商品需要传token 

 

运行结果中可以看到,token保存并替换成功,依赖token的接口请求也成功了

 

标签:10,python,expr,self,value,key,globalVariables,全局变量
From: https://www.cnblogs.com/uncleyong/p/18050189

相关文章

  • python接口自动化系列(11):断言请求结果
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标解析测试数据中要断言的字段,进行断言,判断用例是否成功。 添加工具模块utils下添加assert_tool.py#!/usr/bin/envpython#-*-coding:utf-8-*-#@Author:韧#@wx:ren168632201#@Blo......
  • python接口自动化系列(12):集成allure
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标获取到测试结果后,把结果展示在allure报告中,allure报告非常美观,是目前主流。本篇我们先生成json格式的测试结果数据。 安装allure插件pipinstallallure-pytest 修改测试类动态添加allur......
  • python接口自动化系列(09):发送http请求
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标发送http请求,获取服务器响应内容 关于被测试接口配套练习环境(含相关接口):https://www.cnblogs.com/uncleyong/p/17165143.html 安装模块requests提供了方便易用的HTTP请求功能pipinstall......
  • python接口自动化系列(06):解析初始化sql
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标将initSql中常用变量占位符(下图划线的)替换为实际值。 添加替换变量工具模块substitution_tool.py#!/usr/bin/envpython#-*-coding:utf-8-*-#@Author:韧#@wx:ren168632201#@Bl......
  • python接口自动化系列(03):创建自动化框架项目
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标搭建能基于pytest运行测试用例的项目。 创建项目1、输入项目名称2、选择项目位置3、自定义虚拟环境(默认即可) 创建完成 安装pytest补充:python虚拟环境操作,详见:https://www.cnblogs.c......
  • Go 100 mistakes - #97: Not relying on inlining
      ......
  • python接口自动化系列(04):读取数据文件并注入到测试方法
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标把用例yaml文件中数据读取出来,依次把每条用例数据传给测试方法。 安装模块安装操作yaml的模块pyyamlpipinstallpyyaml 测试数据文件放data目录case.yaml 内容:----epic:全栈测......
  • python接口自动化系列(05):获取常用变量
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标获取常用变量,方便后面解析初始化sql或者请求参数的时候将常用变量占位符替换为实际值。 添加常用变量数据文件data目录下创建variable.yaml 内容:---'#{username}':tester'#{password_......
  • python接口自动化系列(02):yaml测试数据文件设计
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标对测试数据进行设计,数据设计决定了后续读取数据的代码该如何实现。 关于被测试接口配套练习环境(含相关接口):https://www.cnblogs.com/uncleyong/p/17165143.html 常用数据用例数据频繁使用......
  • 基于现有k8S 集群 CA 证书更新100年
    #先提前编译kubeadm到100年1、先备份conf文件和证书文件cp-rp /etc/kubernetes//etc/kubernetes.bak2、生成新的crt证书,默认在/etc/kubernetes/pki路径fori in cafront-proxy-caapiserver-kubelet-clientfront-proxy-clientapiserver;dokubeadminitphase......