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

news2024/11/23 18:57:41

前言

前面小编介绍了如何通过Pytest的插件来实现自动化测试的环境的切换,当时使用的方法是通过钩子函数进行获取命令行参数值,然后通过提前配置好的参数进行切换测试环境地址。加我VX:atstudy-js 回复“测试”,进入 自动化测试学习交流群~~​

今天小编再次介绍一种方法,通过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的配置文件,发现程序断言失败了,两个测试环境地址不一致。

总结

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

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

这可能是B站最详细的pytest自动化测试框架教程,整整100小时,全程实战!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/860932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CDH集群】无法发出查询:Host Monitor未运行

无法发出查询:Host Monitor未运行 【CDH集群】无法发出查询:Host Monitor未运行同事的解决方案解决方法:删除原uuid重启agent查看新uuid修改scm数据库中HOSTS表中的agent的uuid 【CDH集群】无法发出查询:Host Monitor未运行 起初是impala报错,连接不上&…

武器换弹系统这节课出现的bug,角色不能正确掏枪了,只有换完弹夹以后才能正常掏枪了

UE4系列文章目录 文章目录 UE4系列文章目录前言一、蓝图实现二、错误原因三、修改后的效果 前言 在学习武器换弹系统这节课出现的bug,角色不能正确掏枪了,只有换完弹夹以后才能正常掏枪了,就是添加了换弹之后才影响了持枪功能,在…

Maven的入门级——介绍,安装,导入项目,全网最最详细教程!!,包含可能会包的错误的已经指出来了

目录 一.Maven的基本介绍 二. Maven的使用过程 使用步骤: 三.Maven的安装 3.1 下载 3.2 配置环境步骤 3.3配置settings.xml文件 四.入门案列 4.1 配置Eclipse环境 4.2 介绍Maven项目的结构 4.3 运行测试项目 一.Maven的基本介绍 我们可以知道在程序员做项目的时…

ngrok内网穿透可以实现资源共享吗?快解析更加简洁

随着互联网的高速发展,越来越多的人开始意识到内网穿透技术的重要性。在这一技术中,ngrok已经成为了一个备受关注的工具。然而,很多人对于ngrok是否可以进行资源共享存在疑问。本文将从新的角度出发,深入探讨这个问题。 了解什么…

SAP使用函数NUMBER_GET_NEXT创建流水号

1. 系统中设定流水号;使用T-Code:SNRO来创建一个流 输入Object:ZLC_001,然后单击创建。 然后输入Shorttext, Long text, Number length domain在写程序的时候应该会另外创建,这里测试就使用料号的Domain MATNR来做,其他…

Mahout教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐…

利用PHP的特性做免杀Webshell

0x01 前言 最近很多家厂商都陆续开放了自己的Webshell检测引擎,并且公开接口,邀请众安全研究员参加尝试bypass检测引擎,并且给予奖励,我也参加了几场类似的活动,有 ASRC 的 伏魔计划 ,也有 TSRC 的 猎刃计…

8月盛夏相约|上海国际智能家居展SSHT 精彩亮点抢先看

上海国际智能家居展览会(SSHT) 2023年8月29至31日 上海新国际博览中心举行 SSHT 作为国内专业智能家居展会,定位为“智能家居技术的行业平台”,以“技术整合”及“跨界合作”为主轴,旨在呈现不同层面的智能家居技术如…

计算机基础知识一

1、计算机系统组成 1.1 硬件 CPU:中央处理器、计算机核心部件、负责计算任务 内存:记忆功能、存储二进制数,内存是一个字节一个地址。 内存大小换算: 8 bits 1 Byte 1024 Bytes Bytes 1 KB , 1024 KB KB 1 …

妙盈面试(部分)

算法题1,二分查找即可: git rebase算法题2,求二叉树两结点的最小公共祖先 搞笑的是,第2道算法题我刚开始做,黑屏了两秒钟,当时其实腾讯会议软件已经崩溃了,但是我没注意到而是继续做题。等到做…

openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句

文章目录 openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句36.1 语法格式36.2 参数说明36.3 示例 openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句 清理表数据,TRUNCATE TABLE用于删除表的数据,但不删除表结构。也可以…

易大师运势测算网站源码含视频搭建教程

微信/支付宝支付、海外paypal支付、积分支付、VIP免支付,易支付,码支付。 对接真人服务、完善的分销功能、支持设置一二多级分成比例、微信/QQ登陆、注册送积分设置。 推广链接被访问送积分设置,海报推广功能、完善的推广机制,可…

MES系统应该涵盖那些功能

导 读 ( 文/ 1497 ) MES系统是专门面向生产环节的软件系统,用于管理、监控原材料转化为中间产品以及成品的过程。尽管市面上有着不同类别、覆盖不同行业的MES系统,但它们都具有一些基本特征,即包括产品文档管理、物料管理、生产执行管理…

CVE-2021-26411在野样本中利用RPC绕过CFG缓解技术的研究

浏览器渲染进程漏洞利用的一般思路是:在利用漏洞获得用户态任意地址读写权限后,通过篡改DOM、js等对象的虚表函数指针劫持程序执行流,通过ROP链调用VirtualProtect等Win32 API,修改保存shellcode buffer的内存属性为PAGE_EXECUTE_…

将matlab中工作区的数据保存为.mat文件及加载.mat数据

将matlab工作区中的数据保存为.mat文件 如数据a a[1 1 2 3 2 4];一、工作区数据 二、保存为.mat文件 利用save保存数据a到data.mat文件中 save(data.mat,a);三、加载数据 Iload(data.mat)

lc18.四数之和

三数之和的延申,四数之和:两层外层for循环双指针 时间复杂度:O(n3) 空间复杂度:O(1) import org.junit.Test;import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class FourSum {Testpublic v…

Centos7.9安装lrzsz进行文件传输---Linux工作笔记059

这里咱们lrzsz命令,需要用来进行文件传输,因为如果不安装这个命令的话,那么 传输安装包什么的就不方便因为只有少数传输工具,才支持,直接拖拽的.没有的时候就可以用这个工具,用命令来传输 直接就是: sz 文件名 就可以把文件下载下来 rz 选择一个文件, 就可以把文件上传到当…

Spring Cloud构建微服务断路器介绍

什么是断路器 断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果…

电脑开机出现Boot Device怎么办?

开机出现Boot Device这个问题很常见,有时还会出现No Boot Device的问题,虽然多了一个单词,但意思是相同的,这些问题说明你的系统盘出现了问题,或者是引导出现了问题。这该如何解决呢? 方法1. 检查主板或硬盘…

主数据管理案例-某政务

1、 背景介绍及难点分析 近年来,我国在大数据发展方面持续发力,取得了明显成效。但也要看到,目前我国大数据发展还存在“孤岛化”“碎片化”等问题,无序参与过度与创新参与不足并存,导致大数据资源配置统筹不&#xff…