我想使用Jenkins在多个平台浏览器配置上运行多个自动化作业。用python编写的自动化框架已经设置为使用Saucelabs实现此目的。
编写代码的人将其拆分为每个浏览器的单独文件夹,每个文件夹都有自己不同的硬编码大小的'建立。已为每个文件夹运行Jenkins作业。
这种设置在开发或修复测试用例时需要大量的复制粘贴,这是一个维护噩梦。
我想改进这样的过程:
a)继续在不同的浏览器上运行多个作业
b)将自动化代码减少到单个文件夹
c)让詹金斯注入“帽子”。在运行作业之前dict到该文件夹中的文件 d)覆盖'大写'在其他浏览器上运行下一个作业时使用新值我想知道这种情况是否可行:
工作1:
caps = { '平台':' windows', ' browserName':' chrome', '版本':' 63' }
+通常的自动化代码
工作2:
caps = { '平台':' macOS', ' browserName':' safari', '版本':' 11' }
+通常的自动化代码
是否可以将Jenkins配置为完成此操作?如何?它是适合这种情况的合适工具吗?
答案 0 :(得分:0)
我在自己的机器上安装了Jenkins并找到了我希望的解决方案,所以如果任何初学者都有相同的技术需求,我会回答我自己的问题:
首先,我在配置文件中使用了sys.argv [1],sys.argv [2],sys.argv [3]:
caps = {'platform':sys.argv [1],'browserName':sys.argv [2], 'version':sys.argv [3]}
所以我可以从命令行动态传递一些参数:
python test.py windows chrome 63
然后我可以通过转到config->高级选项卡并选择:
,在Jenkins中创建多个共享同一目录的自由式作业使用自定义工作区
在每个作业的Build选项卡中,我添加了使用我选择的选项执行shell(或windows命令行)的选项,例如:
JOB1:
python test.py windows chrome 63
JOB2:
python test.py macOS firefox 58
所以现在我有多个工作在酱实验室的各种平台浏览器组合上运行,但共享相同的源代码