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

企业网站的开发公司网站优化最为重要的内容是

企业网站的开发公司,网站优化最为重要的内容是,wordpress nextgen,天津网站建设的公司哪家好你是否也遇到过这种情况:本地测试通过,一到测试环境就翻车?环境变量错乱、接口地址混乱、数据源配置丢失……这些「环境切换」问题简直像定时炸弹,随时引爆你的测试流程! 测试人员每天都跟不同的环境打交道&#xff0…

你是否也遇到过这种情况:本地测试通过,一到测试环境就翻车?环境变量错乱、接口地址混乱、数据源配置丢失……这些「环境切换」问题简直像定时炸弹,随时引爆你的测试流程!

测试人员每天都跟不同的环境打交道,比如线上环境,测试环境,预上线环境等等,那么作为自动化测试人员写的代码,我们也要具备能自由切换环境的能力,那么今天小编就给大家聊一下,如何能让我们python语言写的测试用例可以自由切换到不同的环境下面去运行呢

Pytest 作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换?有没有一种通用、实用、可复用的方案?

“Pytest如何实现环境切换,让测试适应不同场景?”这个问题曾让我挠头。配置文件怎么写?参数怎么传?能不能自动化切换而不用手动改代码?带着这些疑问,我开始摸索Pytest的环境管理功能。从简单的命令行参数到复杂的配置文件,我发现它不仅灵活,还能无缝对接团队协作。那么,具体该怎么操作呢?接下来,让我们一起进入实战,揭开Pytest环境切换的奥秘。

今天给他大家聊一下通过pytest框架实现自由环境切换的几种方法。

1 pytest-base-url

pytest有一个插件叫pytest-base-url ,是管理base_url非常好的一款插件,文档资料链接:https://pypi.org/project/pytest-base-url/

下载方式:

pip install pytest-base-url

图片

案例如下:

import requestsdef test_demo(base_url):resp = requests.get(base_url)status_code = resp.status_codeassert status_code == 200

 

第1种使用方式是终端添加--base-url这个命令,如下所示:

图片

第2种使用方式是在pytest.ini配置文件种去配置base_url,然后自动读取url的数据,这样就不用添加--base-url这个命令行参数了:

图片

命令行直接运行pytest 即可。

2 hooks函数

pytest有个hooks函数,可以自定义命令行参数,一般在conftest.py中去引用。

Conftest.py中写pytest_addoption这个hooks函数,可以自定义命令行参数,base_url只能对一个url地址进行传递,那么有的项目不仅需要多项目请求的url地址进行不同环境的切换,还需要对mysql的url地址进行不同的切换,这个时候就可以用自定义命令,定义不同的命令行参数,这样我们在执行pytest的时候就可以自由进行传递。

代码如下:

通过pytest_addoption这个hooks函数,设置了两个命令行参数,一个是--mysql-url,另一个是--project-url,help后面是对这两个命令行的解释,解释说明这两个命令行代表什么含义

import pytestdef pytest_addoption(parser):parser.addoption("--mysql-url", action="store", help="这里可以传递mysql的url地址")parser.addoption("--project-url", action="store", help="这里可以传递项目的url地址")

通过fixture函数中的request参数去读取命令行中传递的参数,赋值给一个变量,就可以在pytest中随便使用。

@pytest.fixture(scope='class')
def get_url(request):mysql_url = request.config.getoption('--mysql-url')project_url = request.config.getoption('--project-url')return mysql_url, project_url

项目代码如下:

fixture函数的调用,直接把fixture的名字当成参数传递到测试用例里面即可

import requestsdef test_demo(get_url):mysql_url = get_url[0]print('mysql_url的地址是{}'.format(mysql_url))project_url = get_url[1]resp = requests.get(project_url)status_code = resp.status_codeassert status_code == 200

运行测试的命令为:

pytest -s --mysql -url 192.168.1.11--project-url http://www.example.com

如下图所示:

图片

3 yml和fixture

通过 yml文件 和 fixture 进行配合使用,首先在项目目录下面创建一个conf.yml,然后里面去手动配置现在要运行的环境,截图如下:

图片

然后在创建一个conftest.py,里面定义两个fixture函数,一个用来读取conf.yml里面的内容,另一个用来配置具体的环境信息

比如qa环境,release环境,然后通过conf.yml里面配置的qa还是release,来读取project_url 和 mysql_url,截图如下:

import pytest
import yaml@pytest.fixture(scope="session")
def config():with open('./conf.yml', 'r', encoding='utf-8') as f:conf = yaml.load(f.read(), Loader=yaml.FullLoader)return conf@pytest.fixture(scope="session")
def env_vars(config):env = config["env"]mapping = {"qa": {"project_url": "http://121.42.15.146:9090","mysql_url": "192.168.1.1"},"release": {"project_url": "https://release.com","mysql_url": "127.0.0.1"}}project_url = mapping[env]["project_url"]mysql_url = mapping[env]["mysql_url"]return mysql_url, project_url

项目代码(还是之前的测试用例)如下:

import requestsdef test_demo(env_vars):mysql_url = env_vars[0]print('mysql_url的地址是{}'.format(mysql_url))project_url = env_vars[1]resp = requests.get(project_url)status_code = resp.status_codeassert status_code == 200

命令行运行方式,正常运行即可,截图如下:

图片

结论

随着 CI/CD 流水线普及,多环境并存已成常态。测试人员面临的环境复杂度越来越高,若不能实现配置统一、切换自如,将严重拖慢测试效率,甚至引发线上事故。

环境切换看似是小问题,实则影响自动化测试流程的稳定性与扩展性。掌握 Pytest 中的配置管理,就等于掌握了自动化测试的方向盘。

总的来说,Pytest的环境切换通过命令行参数、配置文件和插件支持,让测试灵活适应各种场景。从单人开发到团队协作,它都能大幅提升效率。这不仅是技术实践,更是现代测试思维的体现。掌握环境切换,你的测试流程将更加顺畅,代码质量也能更上一层楼。

测试环境千万条,配置管理第一条;配置不统一,Bug泪两行。

http://www.dtcms.com/wzjs/496703.html

相关文章:

  • 钓鱼网站的域名怎么不稳定网络安全培训最强的机构
  • 大庆建设中专网站东莞哪种网站推广好
  • 大学生作业代做网站女生读网络营销与电商直播
  • 手机网站应该怎么做百度识图网页版入口
  • 厦门房产网惠州seo博客
  • 乐陵人力资源网站天津网站推广
  • 蓝色系的网站网站开发教程
  • 网站制作接单百度号码认证平台个人号码申诉
  • 湖北省建设银行网站经典软文案例100例
  • 果麦传媒的网站怎么做的今日百度小说排行榜
  • 门户网站如何帮企业做宣传守游网络推广平台登陆
  • 建设网站是否需要一个主机seo搜索引擎优化试题
  • 金华市建设技工学校网站谷歌推广代理
  • 想攻击一个网站怎么做化学sem是什么意思
  • 有那些是做批发的网站搜索引擎优化的作用是什么
  • 晋宁网站建设企业网站建设公司
  • 济宁疫情最新消息今天福州短视频seo网红
  • 个人怎么见个网站小程序seo
  • 模板网站制作多少钱百度网站推广排名优化
  • 北京建机职业技能鉴定中心证书查询seo资源
  • 西安品牌网站建设服务商网络营销的认知
  • 企业邮箱 网站建设百度登录注册
  • 班级网站建设phpapp软件下载站seo教程
  • 株洲网站的建设百度快照是什么意思?
  • 网页制作专业必备招聘seo专员
  • 专业做生鲜的网站专业的网络推广
  • 做网站诊断步骤百度学术论文查重免费检测
  • 潍坊做网站潍坊做网站建设网站前的市场分析
  • 建立网站要钱吗?创建网页步骤
  • 网站开发主流框架友情链接有哪些展现形式