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)删除。
用户投稿
上一篇 2022年6月14日 21:16
下一篇 2022年6月14日 21:16

相关推荐

  • ios手游模拟器(手游模拟器ios)

    本文主要讲的是ios手游模拟器,以及和手游模拟器ios相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 哪个iOS模拟器能多开手游账号?可以推荐个好用的模拟器给我吗…

    2022年11月27日
  • 短视频策划内容的3个要点(短视频策划内容怎么做)

    短视频在制作时,内容框架非常重要。如果直奔主题,然后结束,聚卓告诉你,这样的短视频已经过时了。现在的短视频需要框架的,但不是任何框架,它需要一种易于理解和消化的框架。而且,现在大多…

    2022年11月27日
  • 美团第三季度实现营收626亿元,即时配送订单量增至50亿笔

    新京报讯(记者秦胜南)11月25日,美团发布业绩公告显示,第三季度营收为626亿元,较去年同比增长28.2%,净利润为12.2亿元。第三季度,美团即时配送订单数增长至50亿笔。截至…

    2022年11月27日
  • 存储过程语法(sql server存储过程语法)

    今天小编给各位分享存储过程语法的知识,其中也会对sql server存储过程语法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! oracle存储过程基本语法…

    2022年11月26日
  • 个人怎么做抖音带货(个人做抖音带货能赚钱吗)

    抖音如今是大家很熟悉的短视频平台,不过现在的抖音却不只是短视频那么简单,它的功能非常丰富,其中一个就是可以带货,相信很多小伙伴都有在抖音上买过东西,抖音如今的变现能力也是不容小觑的…

    2022年11月25日
  • 小红书平台的一些机制及玩法详解(小红书玩法有哪些)

    关于小红书 一:小红书平台的一些机制 1. 笔记内容的CES评分机制 2. 笔记流量入口与长尾效应 二:小红书优质笔记的特点(分维度、类型分析) 1.笔记的本身架构组成 维度 2.…

    2022年11月25日
  • 百度关键词快速排名的4大原理解析(百度怎么刷关键词)

    近期百度公告惊雷算法2.0,升级之快还是第一次吧,看来百度对于刷点击行为是零容忍了。之前尹华峰SEO技术博客介绍过一篇如何使用刷点击工具,其实市面上有很多这类SEO快速排名的软件,…

    2022年11月25日
  • 锐龙97900x参数规格跑分评测 锐龙97900x属于什么档次

    锐龙9 7900X是锐龙7000系列处理器中性能顶尖的型号之一,它采用了这一代标配的zen4架构和5nm制程工艺,那么它具体的参数跑分如何,在电脑上世纪发挥怎么样呢,下面就来看看锐…

    2022年11月24日
  • 今天出入济南最新通知(出入济南政策最新消息今天)

    近日济南疫情感染人数也在不断增加,划分的高风险区也是越来越多了。据最新统计,截止2022年11月24日11时,济南共有低风险地区12处,高风险地区338处。很多朋友都担心现在济南无…

    2022年11月24日
  • 抖音世界杯投屏怎么弄 抖音看世界杯怎么看能投屏吗

    抖音作为短视频平台第一次进军世界杯直播,小编还是很期待的,毕竟每天没事的时候都会刷一下抖音,看直播的话也是方便了不少,那抖音看世界杯可以投屏吗?下面一起来了解一下。 抖音世界杯投屏…

    2022年11月24日

联系我们

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