zoukankan      html  css  js  c++  java
  • pytest--使用第三方库simple-settings实现多个环境切换

    背景:

      自动化测试不能只在测试环境运行,肯定要支持切换环境,所以就需要配置不同的配置文件,

    比如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 caseyjt_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

  • 相关阅读:
    java 动态代理
    android中几个很有用的的api
    android 静态和动态设置 Receiver的 android:enabled值
    一个文件查看你选择 Run as Android applications 都干了啥
    ViewStub 的使用
    Linux 常用命令速查
    android自定义View&&简单布局&&回调方法
    西厢记 随笔
    git 命令使用速查手册( 个人版)
    Arraylist源码分析:
  • 原文地址:https://www.cnblogs.com/gcgc/p/15320899.html
Copyright © 2011-2022 走看看