如何通过Pytest的插件,轻松切换自动化测试的环境地址?

2023-10-31

前言

前面小编介绍了如何通过Pytest的插件来实现自动化测试的环境的切换,当时使用的方法是通过钩子函数进行获取命令行参数值,然后通过提前配置好的参数进行切换测试环境地址。

今天小编再次介绍一种方法,通过Pytest的插件:pytest-base-url进行来实现。

pytest-base-url

pytest-base-url是Pytest的第三方插件,主要用来帮助我们进行切换测试环境地址,其中配置方法存在两种,一种直接在命令行中进行添加url参数,一种是通过pytest.ini的方法进行提前存储测试环境地址,接下来跟着小编一起看看两种方式都是如何实现的吧。

命令行参数传入

命令行参数传入,这里需要在我们需要传入的测试用例中,提前加入base-url的参数名称,方便后续命令行时好直接传入参数。

#test_01.py

#coding:utf-8

import requests

def test_01(base_url):

data={

'city':"上海",

'key':'xxxxxxxxxx'

}

r=requests.post(base_url,data=data)

result=r.json()['reason']

print(r.json())

assert result=='查询成功!'

测试用例编写完成后,我们通过打开命令行,进行执行对应的命令,正常我们执行只需要加上pytest-vs执行程序就可以进行运行成功,但是在这里我们需要新加入一个参数,也就是我们的测试环境地址。

pytest-vs--base-url测试环境地址执行程序。

pytest-vs--base-url http://apis.juhe.cn/simpleWeather/query test_01.py

运行后会发现我们的测试用例,已经成功的执行了。

如果不想通过命令行形式执行,我们也可以在Pytest的运行程序下将命令行的参数直接写入进去:

#coding:utf-8

import pytest

import requests

def test_01(base_url):

data={

'city':"上海",

'key':'xxxxxxxxx'

}

r=requests.post(base_url,data=data)

result=r.json()['reason']

print(r.json())

assert result=='查询成功!'

if__name__=='__main__':

pytest.main(['-vs','--base-url','http://apis.juhe.cn/simpleWeather/query',])

注意:在这里编写命令行时,一定要将--base-url和测试环境地址分开写,不然程序会报错。

pytest.ini方法

其中pytest.ini主要属于Pytest的配置文件工具,一些简单的参数都可以存放在这个文件中,小编等下就需要通过pytest.ini文件存放我们的测试环境。

创建一个pytest.ini文件,将其base_url的参数存放进入:

[pytest]

base_url=http://apis.juhe.cn/simpleWeather/query

配置文件编写好后,在通过最上方的代码,直接运行,命令行参数中就不需要添加对应的url地址和base_url的命令了。

#coding:utf-8

import pytest

import requests

def test_01(base_url):

data={

'city':"上海",

'key':'xxxxxxxx'

}

r=requests.post(base_url,data=data)

result=r.json()['reason']

print(r.json())

assert result=='查询成功!'

这里就会有小伙伴们询问了,如何多个测试环境的地址,我这里应该如何切换呢?这个简单,我们还是通过运行pytest.ini配置文件帮我们实现这个功能,我们在pytest.ini配置文件添加参数addopts参数,且我们需要创建两个ini文件,分别代表两个测试环境。

pytest_dev.ini文件:

#pytest_dev.ini

[pytest]

addopts=--base-url=https://test.anjing.com

pytest_qa.ini文件:

#pytest_qa.ini

[pytest]

addopts=--base-url=https://qa.anjing.com

然后在简单的编写一个断言判断我们想要的参数是否传入成功。

#coding:utf-8

def test_home_page(base_url):

print(base_url)

assert base_url=="https://test.anjing.com"

接下来我们继续通过命令行参数执行,不过这个时候需要加入-o参数,所谓的-o参数就是读取不同的ini文件配置信息,先读取pytest_dev.ini配置文件,发现执行程序是正常的。

 接下来我们在读取pytest_qa.ini的配置文件,发现程序断言失败了,两个测试环境地址不一致。

总结

小编通过简单的两种方法介绍了在自动化测试过程中切换我们的测试环境,当然方法是不固定的,主要的是大家如何根据项目进行灵活的运用。

如果您有更好的方法,可以在下方留言,大家一起交流学习,感谢您的阅读,希望本篇文章对您有所帮助。

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

 

 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

如何通过Pytest的插件,轻松切换自动化测试的环境地址? 的相关文章

随机推荐

  • aps是什么意思_APS系统是什么意思?起什么作用

    原标题 APS系统是什么意思 起什么作用 APS系统是什么意思 起什么作用 随着企业规模不断扩大 在经营管理方面会面临各种各样的问题 为了帮助解决此类问题 很多公司都会引入APS高级排程系统帮助进行生产管理的优化 那APS系统是什么意思 起
  • JMeter压测常见面试问题

    1 JMeter可以模拟哪些类型的负载 JMeter可以模拟各种类型的负载 包括但不限于Web应用程序 API 数据库 FTP SMTP JMS SOAP RESTful Web服务等 这使得JMeter成为一个功能强大且灵活的压力测试工具
  • Linux网络设备之注销

    在注销网络设备时 会调用pci driver gt remove函数 以e100网卡驱动为例 实际调用e100 remove 该函数调用函数unregister netdev进行设备注销操作 函数调用关系图如下 注销分为两步 1 回滚注册操
  • 仿阿姨帮

    实例简介 仿阿姨帮 58到家上门O2O系统源码 BAOCMS二次开发 七牛云 是一款PHP MYSQL开发制作的在线上门O2O系统 PC WAP 微信端等功能 在BAOCMS基础上二次开发的东西内核是BAOCMS 最新版内核 修复了所有的功
  • 标准25码 Barcode 25

    Code25 码 标准 25 码 Interleaved 2 of 5 Code25 计算 2of5i xsl
  • windows10安装Trading View出错解决办法

    一 直接从https cn tradingview com desktop 下载安装 出现报错 解析应用包时出错 二 解决办法 1 找下载的安装文件 TradingView appinstaller 2 用记事本打开 找到 https tv
  • mybaties踩坑之错误的@ID 注解引用, 导致org.apache.ibatis.type.TypeException

    在定义完实体类以后 使用mybaties的主键查询实体类 一查就报错 说无法将字符串格式转换为时间类型 仔细检查了一遍 类型并没有问题 于是尝试将Timestamp的字段去掉再看 仍然报无法将字符串格式转换为Integer类型 基本可以确定
  • 视频质量诊断和图像质量诊断 视频质量分析算法

    目前我们常说的视频质量诊断应用 主要分两种 一种是将视频质量诊断系统设在监控中心 通过中心矩阵或流媒体服务器来获取前端所有摄像机的视频信号 通过轮巡方式对各路视频进行检测 这种方式受限于网络带宽和服务器自身性能 上传画面质量无法保障 非真正
  • ROS小车+Velodyne16线+legoloam仿真

    系统使用Ubuntu18 04 ros1 一 建立catkin工作空间 mkdir p catkin ws src cd catkin ws src catkin init workspace 上述三步建立了catkin工作空间并将其初始化
  • 2021河南高驻马店高考成绩查询,河南驻马店2020高考喜报,驻高包揽市理科前三强,一本上线数稳增...

    原标题 河南驻马店2020高考喜报 驻高包揽市理科前三强 一本上线数稳增 读过笔者这篇河南驻马店叱咤风云5所高中 皆是省重点 堪称重点本科人才摇篮的人知道 以驻马店高中 驻高 为代表的几所省级示范高中 在去年的高考中 取得了相当不错的成绩
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记8——BTC挖矿篇

    北京大学肖臻老师 区块链技术与应用 公开课笔记 比特币挖矿篇 对应肖老师视频 click here 全系列笔记请见 全系列笔记请见 click here About Me 点击进入我的Personal Page 在之前的文章 已经基本上介绍
  • c语言 乘除法优先级,运算符运算符优先级 - C语言教程

    运算符优先级 运算符的优先级确定表达式中项的组合 这会影响到一个表达式如何计算 某些运算符比其他运算符有更高的优先级 例如 乘除运算符具有比加减运算符更高的优先级 例如 x 7 3 2 在这里 x 被赋值为 13 而不是 20 因为运算符
  • elasticSearch 实现对nested对象的查询

    1 下面我是对一个nested对象进行查询时候执行的结果 希望对您有帮助 GET my store search query bool must nested path owner query match owner name keywor
  • 前端入门:HTML5+CSS3+JAAVASCRIPT

    1 初识HTML HTML Hyper Text Markup Language 超文本标记语言 超文本包括 文字 图片 音频 视频 动画等 1 1 W3C标准 1 2 HTML基本结构 示例
  • 无服务器计算系统,无服务器计算三大问题及解决办法

    遵循这些建议 以消除非计算瓶颈 避免供应商节流和排队 以及保持无服务器功能的响应 无服务器计算现在十分流行 所有人要么在调查它 要么已经部署它了 不要落在最后 否则你会错过的 有什么好大惊小怪的 无服务器计算提供了一种基础结构 让服务器资源
  • 浅谈exp与expdp的区别

    1 把用户usera的对象导到用户userb 用法区别在于fromuser usera touser userb remap schema usera usera 例如 imp system passwd fromuser usera to
  • Node=>Express自定义中间件 学习5

    手动模拟一个类似于express urlencoded这样的中间件 来解析POST提交到服务器的表单数据 定义中间件 监听req的data事件 监听req的end事件 使用querystring模块解析请求体数据 讲解洗出来的数据对象挂碍为
  • 2021-06-12

    同样的SQL语句在数据库中能查出结果 但是在java项目中 执行结果查不到数据 今天在调试的时候发现同样的SQL语句在数据库中能查出结果 但是在java项目中 执行结果查不到数据 原因是查询语句中有一个条件字段有空格 在PLSQL中查询时会
  • 自定义 HBase-MapReduce

    自定义 HBase MapReduce 1 hdfs gt table 2 table gt table 3 自定义协处理器 1 hdfs gt table 需求 从hdfs读取数据 插入到hbase的表中 mapper public cl
  • 如何通过Pytest的插件,轻松切换自动化测试的环境地址?

    前言 前面小编介绍了如何通过Pytest的插件来实现自动化测试的环境的切换 当时使用的方法是通过钩子函数进行获取命令行参数值 然后通过提前配置好的参数进行切换测试环境地址 今天小编再次介绍一种方法 通过Pytest的插件 pytest ba