pytest--使用第三方库simple-settings实现多个环境切换
pytest 实现 环境 -- 多个 切换 第三方 Simple
2023-09-11 14:21:03 时间
背景:
自动化测试不能只在测试环境运行,肯定要支持切换环境,所以就需要配置不同的配置文件,
比如settings_sit.py、settings_prod.py等,需要切换不同环境时只需要执行命令时指定配置文件即可。
simple-settings简介:
simple-settings的灵感来自于Django的settings系统,但对于任何python项目都是通用的。
https://pypi.org/project/simple-settings/
安装simple-settings
pip install simple-settings
配置conftest.py
from simple_settings import settings # 让pytest认识--settings参数 def pytest_addoption(parser): parser.addoption('--settings', action='store')
配置文件
在项目根目录下新增sit和prod环境的配置文件,里面是各个环境有差异的参数。
settings_sit.py
env = "SIT" host = "http://***.app.api.**" get_token_uri = "/login" # ACCOUNT orgCode = "****" userPhone = "*********" userPass = "********************"
settings_prod.py
env = "prod" host = "http://prod.****.com" get_token_uri = "/login" # ACCOUNT orgCode = "***" userPhone = "******" userPass = "***************"
使用配置文件中的参数
from simple_settings import settings def get_token(): """ :return: 返回接口所需token """ payload = {"userPhone": settings.userPhone, "userPass": settings.userPass, "orgCode": settings.orgCode} print("当前加载的环境为:{}".format(settings.env)) headers = { 'Content-Type': "application/json", 'imsi': "*******" } response = requests.post(settings.host + settings.get_token_uri, json=payload, headers=headers) print(response.text) return json.loads(response.text)["data"]["userToken"]
使用时需要先引入settings,然后直接settings.userPhone去调用配置文件中的参数,而不是使用settings_sit.userPhone
执行命令
pytest case\yjt_arrive_test.py --alluredir=report --clean-alluredir --settings=settings_sit
--settings=settings_sit:表示使用settings_sit.py配置文件中的参数执行脚本
到此就实现了指定配置文件运行测试的目标,用来覆盖不用环境的测试
参考:https://stackoverflow.com/questions/54159045/create-different-environment-settings-in-pytest
相关文章
- [Python + Unit Testing] Write Your First Python Unit Test with pytest
- pytest接口自动化测试框架 | 使用多个fixture
- pytest接口自动化测试框架 | pytest常用插件
- pytest接口自动化测试框架 | 基于Pytest的Web UI自动化测试框架介绍
- pytest接口自动化测试框架 | 使用函数返回值的形式传入参数值
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
- Pytest自动化框架中使用pytest.exit中断用例执行和动态为用例添加mark标记
- Pytest自动化测试框架权威教程07-Monkeypatching,对模块和环境进行Mock
- 四、Pytest框架 — pytest.ini文件和用例执行的顺序以及跳过测试和失败重试
- Pytest测试框架基本使用方法详解
- 八戒来探讨Pytest失败自动重跑的几种实现方法
- 一文3000字从0到1用【 pytest+excel】实现自动化接口测试
- 【Pytest】 —— 测试报告Allure
- 自动化冒烟测试unittest,pytest哪个更强?
- pytest使用
- Pytest----通过fixture实现参数化时如何对指定某个参数使用skip标记
- Pytest自动化测试框架从入门到精通由浅入深全网最详细最通俗易懂讲解系列篇
- 自研开源项目(4)基于pytest框架推荐的自动化测试架构及脚本模板caterpillar_pytest_templates
- Pytest测试框架基本使用方法详解