selenium - 使用 Selenium Standalone 服务器运行 Selenium IDE 测试套件的问题

标签 selenium selenium-rc selenium-ide

我尝试按照以下引用在独立服务器上运行 selenium IDE 测试套件。我的最终目的是在 ubuntu 上运行 headless 数据驱动测试。

Selenium RC with DataDriven

Running Tests from command line

Selenium Headless tests on Ubuntu

所以在查看了这些教程之后,我设置了非常简单的测试套件并尝试从命令行运行,例如

 java -jar ~/selenium/selenium-server-standalone-2.39.0.jar  -userExtensions user-extensions.js -htmlSuite "*firefox" http://google.com ./suite.html ./out/firefox-results.html

输出

org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
10:16:54.164 INFO - Java: Apple Inc. 20.65-b04-462
10:16:54.164 INFO - OS: Mac OS X 10.6.8 x86_64
10:16:54.178 INFO - v2.39.0, with Core v2.39.0. Built from revision ff23eac
10:16:54.250 INFO - Default driver org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: registration capabilities Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] does not match with current platform: MAC
10:16:54.336 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
10:16:54.338 INFO - Version Jetty/5.1.x
10:16:54.339 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
10:16:54.340 INFO - Started HttpContext[/selenium-server,/selenium-server]
10:16:54.340 INFO - Started HttpContext[/,/]
10:16:54.406 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@5ff06dc3
10:16:54.407 INFO - Started HttpContext[/wd,/wd]
10:16:54.413 INFO - Started SocketListener on 0.0.0.0:4444
10:16:54.414 INFO - Started org.openqa.jetty.jetty.Server@4ca31e1b
jar:file:/Users/myname/selenium/selenium-server-standalone-2.39.0.jar!/customProfileDirCUSTFFCHROME
10:16:54.580 INFO - Preparing Firefox profile...
10:16:55.946 INFO - Launching Firefox...
10:16:57.246 INFO - Checking Resource aliases

它确实打开了两个 firefox 窗口并在 INFO - Checking Resource aliases 之后卡在那里

没关系如果我跳过-userExtensions user-extensions.js,它会给出相同的输出,显示两个弹出窗口并卡在那里。 firefox 弹出窗口显示测试套件已成功加载,但未进一步执行命令。

我想知道我是否需要运行/配置其他东西

示例测试套件和测试用例:

  1. suite.html

  2. case_a.html

  3. 命令

    java -jar ~/selenium/selenium-server-standalone-2.39.0.jar -htmlSuite "*firefox"http://www.google.com suite.html firefox-results.html

    测试条件:

    A) 操作系统:Mac OS X 10.6.8 x86_64/java 版本“1.6.0_65”

    B) 操作系统:Windows 7/java 版本:1.7.0_02

没有任何运气的黑客尝试:

A) Removing xml tag

B) .html file extension

最佳答案

由于这个问题引起了很多关注并且需要一个合适的解决方案,我是这样找到的:

首先我们需要适当的插件来设置 headless 测试

获取正确的插件

我已经在使用以下 selenium IDE 插件

  1. 数据驱动 v0.2
  2. 流量控制 v08
  3. includecommand 1.3

我需要的是与我需要的 selenium 核心服务器 一起工作的相应 selenium 插件

  1. datadriven_v0.2-core.js
  2. 流量控制(goto_sel08.js)
  3. includecommand (includeCommand_2.3.js) origional source

    由于 openqa.org 不再维护这些插件(可能已损坏)您必须使用 wayback machine获取 js 文件(没有 zip 附件)。例如 flowcontrol in wayback machine

因为我已经完成了这个并且创建了一个带有一些修复的要点

  1. datadriven_v0.2-core.js
  2. flowcontrol ( goto_sel08.js)
  3. includeCommand_2.3.js
  4. user-extension.js (以上三者合计)

设置 headless 测试

a) 安装 xvfb ( X Vritual Frame Buffer 和 firefox )

sudo apt-get update && sudo apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xvfb x11-apps  firefox

b) 创建 xvfb 初始化脚本/var/init.d/xvfb

if [ -z "$1" ]; then
  echo "`basename $0` {start|stop}"
  exit
fi

case "$1" in
start)
  /usr/bin/Xvfb :99 -ac -screen 0 1024x768x8 &
;;
stop)
  killall Xvfb
;;
esac

c) 添加到启动脚本:

sudo update-rc.d xvfb defaults
sudo chmod +x /etc/init.d/xvfb

d) 启动 xvfb

/etc/init.d/xvfb start

e) 设置 selenium 测试(你可以把测试放在任何地方)

sudo mkdir /usr/local/SeleniumTests   && cd /usr/local/SeleniumTests

checkout /复制您的 html 测试到/usr/local/SeleniumTests

f) 为测试目录创建别名(配置文件'selenium_alias') (只允许来自本地主机)

<IfModule alias_module>
       Alias  /SeleniumTests/  /usr/local/SeleniumTests/
  </IfModule>
  <Directory "/usr/local/SeleniumTests/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 127.0.0.1
   </Directory>

sudo mv SeleniumTests/selenium_alias /etc/apache2/sites-avaiable
sudo a2ensite selenium
sudo service apache2 restart

g) 更新 selenium 测试数据 (/usr/local/SeleniumTests/测试/数据) 例如更改测试用户名/密码和 baseUrl 以测试应用程序(我在 xml 文件中)

h) 下载 Seleninum 服务器 jar 文件

sudo mkdir /var/lib/selenium/ 
sudo wget http://selenium.googlecode.com/files/selenium-server-standalone-2.39.0.jar -o /var/lib/selenium/selenium-server.jar

i) 运行 headless /Selenese 测试

export DISPLAY=":99" && java -jar /var/lib/selenium/selenium-server.jar   -htmlSuite *firefox https://localhost "/usr/local/SeleniumTests/tests/my_app_smoke_testing_suite.html" "firefox-results.html" -trustAllSSLCertificates  -ensureCleanSession -port 5561 -userExtensions /usr/local/SeleniumTests/addons/user-extensions.js

注意 我在/usr/local/SeleniumTests/addons 下设置了我的 selenium 插件

有些步骤可能并不适用于所有情况。

关于selenium - 使用 Selenium Standalone 服务器运行 Selenium IDE 测试套件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852083/

相关文章:

javascript - 在 Selenium javascript 中创建警报消息

selenium - 页面工厂中ElementLocatorFactory和FieldDecorator的作用是什么?

selenium - Docker + Rspec + Capybara - 参数 [0] 未定义

java - 运行 junit 测试失败。无法创建新的浏览器 session

selenium - 在非输入或非控制元素上使用 Selenium 到 'click'

java - 使用 Selenium 检测 Excel 文件

java - Selenium 点击 javascript 链接

java - Selenium isSelected() 方法在撒谎

selenium - onchange 事件不会在 selenium 类型命令上触发

xpath - 在 selenium IDE 中使用大写和小写 xpath 函数