当前位置: 首页 > news >正文

pytest---环境切换(base-url)

前言

  前面小编介绍了如何通过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的配置文件,发现程序断言失败了,两个测试环境地址不一致

总结

小编通过简单的两种方法介绍了在自动化测试过程中切换我们的测试环境,当然方法是不固定的,主要的是大家如何根据项目进行灵活的运用,如果您有更好的方法,可以在下方留言,大家一起交流学习,感谢您的阅读,希望本篇文章对您有所帮助。

http://www.lryc.cn/news/97146.html

相关文章:

  • linux跑代码,程序终止了,但资源没有释放。
  • 数据结构--线性表2-1
  • 网访问内网机器:基于frp的内网穿透
  • 【Spring框架】Spring读取与存储综合练习
  • Python实现指定区域桌面变化监控并报警
  • 【数据结构】实验五:栈
  • ⚡️⚡️Java多线程编程的高效、安全实践
  • 【云原生】Docker私有仓库registry
  • 第十四届蓝桥杯大赛青少年省赛C++组试题真题 2023年5月
  • GAN论文精读
  • 数据结构:计数排序(详解)
  • 1 请使用js、css、html技术实现以下页面,表格内容根据查询条件动态变化。
  • react-native项目安卓版本升级 compileSdkVersion 29->31
  • 【学习笔记】目标跟踪领域SOTA方法比较
  • 机器学习 深度学习编程笔记
  • 18.背景轮播
  • 论文代码学习—HiFi-GAN(2)——鉴别器discriminator代码
  • Linux Shell 脚本编程学习之【第3章 正则表达式 (第二部分) grep命令】
  • 大语言模型LLM
  • 自学网络安全(黑客)的误区
  • @Conditional
  • 【Linux】网络基础之TCP协议
  • Java设计模式之装饰器(Decorator)模式
  • element ui树组件render-content 树节点的内容区的渲染另一种方式
  • html a标签换行显示
  • 关于Redis-存Long取Integer类型转换错误的问题
  • 设计模式一:简单工厂模式(Simple Factory Pattern)
  • 如何利用plotly和geopandas根据美国邮政编码(Zip-Code)绘制美国地图
  • ceph集群搭建
  • 前端密码加密 —— bcrypt、MD5、SHA-256、盐