python实现运行时选择配置参数

自动化测试往往需要在多个环境中跑测试用例,最开始我用pytest+selenium搭建了一套测试工程,使用jenkins管理定时拉起任务,每次需要在另一个环境跑自动化时就临时改下配置再拉起任务。改的次数多了就烦了,就想办法解决这个问题,实现在运行时根据用户输入的参数来决定使用哪个环境的配置。

要实现运行时根据用户输入来决定使用什么环境配置,需要借助系统环境变量,首先运行程序时提取用户输入参数并将其写入环境变量,然后程序通过读取系统环境变量,根据环境变量的值来决定要运行的环境参数,下面列出python示例代码来演示是如何实现的。

示例代码

main.py为自动化工程运行的入口,为简便起见,这里仅将选择的环境参数打印出来,代码如下:

import sysimport osfrom conf import * class Autotest: def __init__(self): self.running_env = “” self.config = None def get_env_config(self): self.running_env = os.environ[“env”] if “dev” in self.running_env: self.config = DevConfig else: self.config = ProdConfig def show_config(self): print(self.config.desc) print(self.config.demo_url) print(self.config.demo_other) if __name__ == “__main__”: app = Autotest() # 根据运行输入参数设置环境变量 if len(sys.argv) > 1: os.environ[“env”] = sys.argv[1] else: # 用户没有输入默认设置环境为开发环境 os.environ[“env”] = “dev” # 读取环境变量并根据环境变量获取运行配置 app.get_env_config() app.show_config()

conf.py为环境配置文件,和main.py在同一个目录,代码如下:

class Config: desc = “” demo_url = “” demo_other = “继承配置项示例” class DevConfig(Config): desc = “开发环境” demo_url = “https://localhost:8080″# 未设置的参数直接继承Config的配置class ProdConfig(Config): desc = “生产环境” demo_url = “https://localhost:8090” # 未设置的参数直接继承Config的配置

测试

接下来实际运行测试一下,cmd下执行”python main.py dev”命令将打印如下信息:

开发环境https://localhost:8080继承配置项示例

执行”python main.py prod”将打印如下信息:

生产环境https://localhost:8090继承配置项示例

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月14日
下一篇 2022年6月14日

相关推荐

  • 最全抖音运营指南(抖音运营方案)

    抖音的好处不用多说,大家看看地铁上公交上大家刷的是啥就知道了,大家看看门店要求顾客拍抖音可以优惠的活动就知道了,抖音进入了大众生活的方方面面。 不管是从打造个人IP的角度,还是宣传…

    2022年10月18日
  • 支付宝借呗不还会有什么后果 借呗暂时还不上怎么办

    借呗出自于支付宝,那么对于每一个支付宝用户都不陌生吧,它在借贷市场人气也非常高,但借呗是一款必须按时还款的贷款产品,那么支付宝借呗不还会有什么后果,下面来看分析。 1、功能受到限制…

    2022年8月26日
  • “2022全国家电消费季”正式开启

    来源:国际商报 头部品牌踊跃参与 真金白银让利促销 “2022全国家电消费季”正式开启 本报记者吴 力 8月8日,商务部组织开展的“2022全国家电消费季”正式开启,天猫、京东、海…

    2022年8月10日
  • 小米要普及超声波屏下指纹技术?与光学屏下指纹技术有什么区别?

    得益于智能手机的高速发展,围绕智能手机应用的周边技术也一直都在高速发展,虽然苹果基本已经放弃了传统的指纹识别方案,专心使用Face ID作为自家的生物识别方案,但多数Android…

    2022年8月7日
  • SpringBoot整合Mybatisplus

    Mybatis-Plus 实战教程 1.什么是Mybatis-Plus 1.1 什么是mybatis-plus 官网:www.mybatis-plus.com/guide/ MyB…

    2022年6月17日
  • 神策数据完成中国信通院首批 CDP(客户数据平台)基础能力评测

    近日,神策数据 CDP 系统顺利完成中国信通院发布的首个智能营销客户数据平台标准的全部测评项目,于营销 4.0 时代一举聚焦行业目光,在数据、技术和内容的驱动下,加速营销能力全面升…

    2022年6月15日
  • 盘点7类正走入人们生活的服务机器人

    服务机器人作为智能机器人家族的一员,充分融合了计算机视觉、语音识别、自然语言处理、知识图谱等人工智能技术,目前已在基建、 商业、民生、社会服务等领域得到广泛应用。 一、迎宾接待机器…

    2022年7月29日
  • 糖纸众测|vivo X80:影像性能出众,Pro 级升杯

    本文作者为@馒头 Karry,内容首发于糖纸众测。 vivo X 系列产品一直定位于专业的影像旗舰,这次的 X80 也不例外。说实话,刚拿到手机的时候有被 X80 的外观所震撼到,…

    2022年6月18日
  • 蚂蚁消金上线“新市民陪伴计划”,发放花呗借呗免息券

    作者| 子卿 出品| 消费金融频道 「消费金融频道」注意到,近日蚂蚁消费金融推出今年以来首个活动“新市民陪伴计划”,主要面向2020至2022届毕业的毕业生。 蚂蚁消费金融旗下的花…

    2022年8月20日
  • 超100万英国用户取消Apple Music等音乐流媒体订阅

    果粉之家,专业苹果手机技术研究十年!您身边的苹果专家~ 据Kantar中的一份市场数据分析报告显示,上个季度中,超一百万音乐订阅包括Apple Music、Spotify所在内的音…

    2022年6月21日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息