如何在詹金斯中运行单个量角器测试套件

问题描述

我正在尝试在詹金斯及其工作中进行量角器测试。问题是,在docker容器上运行测试并使用多个无头浏览器不起作用,因为我的测试使用的是诸如悬停元素之类的操作。我的想法是使用多个测试套件:

  • 本地:不是无头之脑,用于演示
  • 外部:无头(测试用例,没有诸如悬停元素的操作),Jenkins

我将套件添加到了protractor.conf.js文件中。 打字 protractor protractor.conf.js --suite local使用终端可以正常工作,并且符合预期,但是在我的 Jenkinsfile.feature 中,它说 npm run e2e...,它也运行我不想执行的测试套件。 因此,我的Jenkins测试失败,只是因为执行了错误的测试套件。 将npm run e2e...替换为 Jenkinsfile.feature 中的protractor protractor.conf.js --suite local都不起作用。我希望有一种方法可以告诉Jenkins运行什么套件。谢谢

解决方法

即使您的问题听起来像是“如何开发一个网站”,我也会尽力引导您完成这些步骤。但是您的问题范围太广,特别是考虑到您没有提供错误堆栈以及正在运行的package.json,配置文件,docker文件和jenkins作业的内容

您必须将任务分解为多个层次(这与您想要的任何参数,无头或多个套件有关)并一个一个地解决它们

  1. 通过从CLI传递来确保量角器可以采用此参数。例如
protractor protractor.conf.js --suite local

但是如果没有通过,请不要忘记添加默认值

  1. 一旦1经过测试并且可以工作,请转到下一层,在您的情况下应该是docker。打开您在其中声明映像的Dockerfile,然后添加要传递给量角器的环境变量。定义命令,一旦从映像中旋转出容器,即可运行脚本

  2. 当您的docker映像按预期工作时,请了解在旋转容器时如何将变量传递到该映像。通常情况下,应该像以下

docker run -e SUITE=“regression” protractor_image
  1. 当您在Jenkins主服务器或从服务器中拥有映像时,并且可以从CLI运行测试,就可以完成工作。同样,根据您正在从事的管道工作或常规的自由职业,您的操作步骤可能会有所不同。但是逻辑保持不变。您需要添加作业,并使其通过硬编码参数运行测试

  2. 工作完成后,添加输入参数并确保可以使用

我确定您会对每个项目或列表有疑问,所以我建议为每个问题或每个问题打开一个新问题,并为他们提供更多详细信息。祝你好运