使用CircleCI进行Selenium测试

9

我正在使用CircleCI,想要运行Huxley测试。

但是我需要运行selenium服务器才能进行测试。

我尝试运行selenium服务器独立的jar包,但这并不是解决方案。

如果您有相关的经验,请帮忙解决问题。

2个回答

28

大多数浏览器测试框架已经包括了Selenium。如果你需要运行一个独立的Selenium服务器,可以将以下内容添加到存储库根目录下的circle.yml文件中:

dependencies:
   post:
      - wget https://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
      - java -jar selenium-server-standalone-2.44.0.jar:
            background: true

这将下载最新的独立 Selenium jar 并在后台运行。请注意第二个命令末尾的冒号以及 "background: true" 的 4 个空格缩进。这会告诉 YAML 将 background 视为命令的修饰符。

更多文档可以在此处找到:

https://circleci.com/docs/background-process

https://circleci.com/docs/installing-custom-software

注意:如果您在此答案中更新 JAR 链接,请确保它是 HTTPS。因为中间人攻击可能导致 JAR 被替换/篡改,所以从不安全的 HTTP 下载并直接运行被视为危险的。


这正是我所需要的!谢谢。 - Michael Czolko
2
我仍然认为CirceCI是迄今为止最好的CI! - Michael Czolko
这个解决方案的问题在于,Selenium、Chromedriver 和 Chrome 版本应该保持一致才能使它们协同工作,因此请看下面我的答案。 - Alex Skrypnyk
我该如何连接到刚刚生成的selenium进程?比如从protractor配置中获取地址和端口? - javafueled
CircleCI配置 https://github.com/integratedexperts/drupal-dev/blob/8.x/.circleci/config.yml#L219 - Alex Skrypnyk

5

安装完整的Selenium、ChromeDriver和Chrome:

dependencies:
  pre:

  # Install Selenium.
  - curl http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar > selenium-server-standalone.jar
  - curl http://chromedriver.storage.googleapis.com/2.23/chromedriver_linux64.zip | gzip -dc > chromedriver
  - chmod +x chromedriver
  - 'java -jar selenium-server-standalone.jar -trustAllSSLCertificates -Dwebdriver.chrome.driver=chromedriver':
        background: true
  # Update Google Chrome.
  - google-chrome --version
  - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
  - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb stable main" >> /etc/apt/sources.list.d/google.list'
  - sudo apt-get update
  - sudo apt-get --only-upgrade install google-chrome-stable
  - google-chrome --version

您的chromedriver的curl命令将无法工作。您不能将zip管道传输到gzip以进行解压缩。它们是两种不兼容的压缩方案。但是以下命令可以正常工作:curl https://chromedriver.storage.googleapis.com/2.33/chromedriver_mac64.zip -O && unzip chromedriver_mac64.zip - javafueled
@javafueled 如果它已经在20多个项目中工作了,那么它怎么可能不起作用呢? - Alex Skrypnyk
gunzip 能解压缩 .zip 归档文件吗?(http://www.gzip.org/#faq17)。`gunzip` 就是 gzip -d。事实上,每次我尝试这样做时,Linux 和 Mac 版本都会告诉我 gzip: unknown compression format。我非常 尊重地 表示怀疑,认为管道并没有像人们想象的那样起作用。 - javafueled

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接