2种方法,教你使用Python实现接口自动化中的参数关联

2023-11-02

前言

通常在接口自动化中,经常会参数关联的问题,那么什么是参数关联?

参数关联就是上一个接口的返回值会被下一个接口当做参数运用,其中Python中可以实现参数关联的方法有很多种,今天小编给大家介绍下,如何通过Python来实现接口自动化中的参数关联。

UnitTest

虽然说目前Pytest框架比较流向,但是目前应该有绝大部分公司还是在使用UnitTest框架,那么小编先介绍下如何通过UnitTest来实现接口自动化的参数关联。

方法一

下面小编通过测试用例返回参数的形式进行实现参数关联。

# coding:utf-8
import requests
import unittest
class Test(unittest.TestCase):

    def test_01(self):
        '''查询天气接口测试用例'''
        url = 'http://apis.juhe.cn/simpleWeather/query'
        data = {
            'city': '上海',
            'key': 'xxxxxxxxxxxx'
        }
        r = requests.post(url, data=data).json()
        info = r['result']['realtime']['info']
        print(info)
        return info

    def test_02(self):
        '''查询字典测试用例'''
        a = self.test_01()
        url = 'http://v.juhe.cn/xhzd/query'
        data = {
            'word': a,
            'key': 'xxxxxxxxxxxx'
        ''
        }
        r = requests.post(url,data=data)
        result = r.json()
        print(result)
if __name__ == '__main__':
    unittest.main()

通过使用上述方法返回的结果来进行供给下一个接口使用,不会因为执行顺序所影响,但是就是会把上面的的用例多执行一遍。可以通过下方执行结果看出,已经成功的实现了接口关联。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

方法二

小编在这里使用一种全局变量的方法,我们先定义一个名称,然后用这个名称去接收我们即将返回的参数值,最后在下一条用例中进行使用。

# coding:utf-8
import requests
import unittest

class Test(unittest.TestCase):

    def test_01(self):
        '''查询天气接口测试用例'''
        global info
        url = 'http://apis.juhe.cn/simpleWeather/query'
        data = {
            'city': '上海',
            'key': 'xxxxxxxxxxx'
        }
        r = requests.post(url, data=data).json()
        info = r['result']['realtime']['info']
        print(info)

    def test_02(self):
        '''查询字典测试用例'''
        url = 'http://v.juhe.cn/xhzd/query'
        data = {
            'word': info,
            'key': 'xxxxxxxx'
        ''
        }
        r = requests.post(url,data=data)
        result = r.json()
        print(result)
if __name__ == '__main__':
    unittest.main()

通过运行上述代码,发现已经成功将天气接口中的参数“晴”提出来,然后供下一个接口进行查询。

Pytest

介绍完UnitTest了,那么小编来介绍下如何通过Pytest来进行实现参数关联,其实原理都是一样的,只不过小编多介绍几种类似的方法。

# coding:utf-8
import requests
import re
def test_01():
    '''查询天气接口测试用例'''
    url = 'http://apis.juhe.cn/simpleWeather/query'
    data = {
        'city': '上海',
        'key': 'xxxxxxxx'
    }
    r = requests.post(url, data=data).json()
    # 通过正则获取想要的数据
    a = re.findall("'info': '(.*?)', 'wid': '00', ", str(r))
    info = globals()['info'] = a[0]
    print(info)

def test_02():
    '''查询字典测试用例'''
    url = 'http://v.juhe.cn/xhzd/query'
    data = {
        'word': globals()['info'],
        'key': 'xxxxxxx'
    ''
    }
    r = requests.post(url,data=data)
    result = r.json()
    print(result)

上述测试用例中,小编使用了globals()函数用来获取全局作用域,结果通过字典的形式进行返回,而且小编通过获取下一个借口的参数值时,使用了正则表达式的提取,形成了多种方法均可实现我们的功能。

总结

小编分别通过Pytest和UnitTest两种框架介绍了在做接口测试时,如何通过全局变量的形式进行参数关联,其中也分别介绍了提取参数值时也采用了不同的方法,小伙伴们可以自己动手尝试下。

如果有更好的方法也可以进行留言,大家一起参考学习,当然至于怎么运用到公司项目中,这个就要看小伙伴们对参数关联和全局变量的掌握以及项目实际情况来看了,感谢您的阅读,希望本篇文章对您有所帮助。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2种方法,教你使用Python实现接口自动化中的参数关联 的相关文章

随机推荐

  • 如何做好软件项目策划

    作为一个刚刚入门的程序员 当接到一个新的项目时 我往往会有一筹莫展的感觉 不知道如何去下手 设计数据库 设计程序结构 设计功能结构 设计用户权限 预留功能扩展等等 当想不出东西的时候 我的做法是 先静一静 好好捋一捋 假如说我要盖个房子 那
  • 浅谈LOG日志的写法

    文章来源于公司的大牛 1 Log的用途 不管是使用何种编程语言 日志输出几乎无处不再 总结起来 日志大致有以下几种用途 l 问题追踪 通过日志不仅仅包括我们程序的一些bug 也可以在安装配置时 通过日志可以发现问题 l 状态监控 通过实时分
  • Http传输协议介绍

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol 超文本传输协议 的缩写 是用于从万维网 WWW World Wide Web 服务器传输超文本到本地浏览器的传送协议 HTTP是一个基于TCP IP通信协
  • mes管理系统php原码,MES系统_MES车间管理系统_轻量化定制方案

    信息化管理系统介绍 依据信息化管理目标不同 企业信息化系统的内容差异较大 一般地 企业信息化系统由以下三个主要层次组成 各层次中包含有用途各异 功能各异的业务处理子系统或功能组件 包括企业经营管理系统 过程管理系统 过程控制系统 信息化管理
  • 微软Hololens 2开发指南

    微软Hololens 2开发指南 1 首先来介绍一下这款混合现实MR产品 这是微软在2019年向市场发布的 内部拥有win10系统 很方便用户操作 而且手势简单易上手 相较于第一代产品来说整体提升了不少 结构上解决了第一代压鼻梁的问题 这次
  • mobile footer nav

    item 数量可变 图片可变 高亮颜色可变 tabbar vue
  • stable diffusion webui升级bug问题解决思路(纯干货)

    个人网站 https tianfeng space 文章目录 一 前言 二 个人方案 1 扼杀在萌芽中 A 解压后点击启动器运行依赖 然后点击A启动器 B 更新本体和扩展 全部到最新版本 C 把controlnet1 1放入stable d
  • 由React Router引起的组件重复渲染谈Route的使用姿势

    React Router 4 把Route当作普通的React组件 可以在任意组件内使用Route 而不再像之前的版本那样 必须在一个地方集中定义所有的Route 因此 使用React Router 4 的项目中 经常会有Route和其他组
  • VMware虚拟机搭建 ESXI-8.0环境并且安装Mac OS13系统,

    官方下载地址 https customerconnect vmware com en evalcenter p free esxi8 下载完成大小如下 打开VMware虚拟机 新建虚拟机 导入镜像 选择下载VMware VMvisor In
  • Alibaba Arthas 3.1.1版本:trace支持行号/小幅改进

    Arthas是Alibaba开源的Java诊断工具 深受开发者喜爱 Github https github com alibaba arthas 文档 https alibaba github io arthas Arthas 3 1 1版
  • JPA在ddl-auto=update时,首次执行报错Cant DROP; check that column/key exists

    背景 在一个新的数据库上启动项目 报了一堆Can t DROP xxx check that column key exists的错误 虽然不影响系统正常启动 也不影响建表 但是影响心情 因此上网查询原因 发现大部分都没提到这个问题 要么就
  • 微信青蛙和会员让消费者看得见优惠

    双面屏的设计可以及时地建立收银员于消费者的沟通关系 通过背屏 收银员可以把许多智慧营销的内容及时地推送到前屏 提高商户的复购率以及店铺管理效率 比如选择推送商户公众号的二维码 消费者可以在支付时直接完成关注 关注后可以推送新品 也可以查看消
  • C/C++编程:回车符和换行符

    回车符号和换行符号产生背景 在计算机还没有出现之前 有一种叫做电传打字机 Teletype Model 33 的玩意 每秒钟可以打10个字符 但是它有一个问题 就是打完一行换行的时候 要用去0 2秒 正好可以打两个字符 要是在这0 2秒里面
  • 解决 npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead

    使用npm时 报错 npm WARN config global global local are deprecated Use location global instead 目录 有以下几种方法 解决方法一 解决方法二 解决方法三 本人
  • yolov5模型压缩之模型剪枝

    目前看来 yolo系列是工程上使用最为广泛的检测模型之一 yolov5检测性能优秀 部署便捷 备受广大开发者好评 但是 当模型在前端运行时 对模型尺寸与推理时间要求苛刻 轻量型模型yolov5s也难以招架 为了提高模型效率 这里与大家分享基
  • 第一次被虐-java面试

    1 自我介绍 2 介绍Spring 3 排序算法有哪些 以及它的时间复杂度 4 线程池的作用 5 网络的协议 http是哪一层的协议 UDP和TCP协议的区别 6 写SQL代码 7 介绍servlet 8 创建线程的方式 9 面向对象的三大
  • SpringCloud微服务实战——搭建企业级开发框架(四十一):扩展JustAuth+SpringSecurity+Vue实现多租户系统微信扫码、钉钉扫码等第三方登录

    前面我们详细介绍了SSO OAuth2的定义和实现原理 也举例说明了如何在微服务框架中使用spring security oauth2实现单点登录授权服务器和单点登录客户端 目前很多平台都提供了单点登录授权服务器功能 比如我们经常用到的QQ
  • javlib有新地址吗,《郭杰自杀》_郭杰自杀_NEWS下载网

    走过黑魆魆的楼梯 推开安全出口的木门 我们来到一条幽暗的走廊上 郭杰自杀酒至酣然处 云持身边的小丫头不知何时悄悄立在她身后 附耳轻言了几句 毕竟这人在他面前可没什么下限 提示 郭杰自杀 眼见轰轰隆隆的雷劫就要劈下 元家宝赶紧拉着自家师尊两人
  • QCamera类实现摄像头截图

    Qt5 0版本的QMultimedia包含了许多有媒体相关的类 QCamera类用于打开系统的摄像头设备 QCameraViewfinder用于显示捕获的视频 QCameraImageCapture用于截图 在使用QCamera相关的类时
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    前言 通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参