robotframework + selenium实现网站自动测试

jopen 10年前

本文参考:How to use RobotFramework with the Selenium Library

先来介绍下背景。Selenium是个强大的自动化测试工具,可以手工编写或自动录制测试脚本,可以手工执行,也可以自动执行。而robotframework是个通用的自动化测试框架。 robotframework-seleniumlibrary是robotframework的一个测试库,它可以集成Selenium,并提供一套简单易懂的语法用于书写测试用例(好处就是测试人员不用学任何编程语言也能写测试用例了)。

用这套工具能实现:

  • 无需学习编程语言即可编写测试脚本
  • 自动点击网站链接、输入文字、点击按钮、验证结果
  • 可以放在cron里每日自动执行
  • 自动生成测试报告
  • 对于fail的测试用例,保存输出结果并截图

下面是配置方法。操作系统用的是Ubuntu 12.04。

首先装个浏览器。

$ sudo apt-get install firefox

然后要安装robotframework和robotframework-seleniumlibrary。

$ sudo pip install robotframework  $ sudo pip install robotframework-seleniumlibrary

接下来要安装JRE以运行Selenium Server。

$ sudo apt-get install default-jre

然后去下载Selenium Server,文件名为selenium-server-standalone-2.25.0.jar。

如果你的服务器上没有图形界面,那么还要安装个X-server和窗口管理器(我选择了xfce4)。我原本打算使用Windows下的WeirdX作为X-Server, 但Selenium报告说它不支持自动截图,只好装了个xorg。

$ sudo apt-get install xorg  $ sudo apt-get install xfce4

这样环境就都配置好了。接下来我们写个小测试用例,保存成google.txt。它仅打开Google首页并检查里面有没有'Google'字样。 (测试脚本参考SeleniumLibrary Documentation。)

*** Settings ***  Library  SeleniumLibrary  5  localhost    *** Test Cases ***  Google Homepage Should Contain Google      Open Browser  http://www.google.com/  *firefox      Page Should Contain  Google

那么如何运行测试呢?首先要启动X-server。如果你用ssh,那么务必回到控制台上(ssh不行)去启动X-server。

$ startx

启动后如果xfce4没有自动启动,可以再执行如下命令:

$ startxfce4

然后去shell里(可以是ssh的shell)执行如下命令以启动Selenium Server:

$ export DISPLAY=localhost:0.0  $ java -jar selenium-server-standalone-2.25.0.jar

最后,换另一个shell执行测试:

$ pybot google.txt  ==============================================================================  Google  ==============================================================================  Google Homepage Should Contain Google                                 | PASS |  ------------------------------------------------------------------------------  Google                                                                | PASS |  1 critical test, 1 passed, 0 failed  1 test total, 1 passed, 0 failed  ==============================================================================  Output:  /home/charlee/code/cmstest/test/output.xml  Log:     /home/charlee/code/cmstest/test/log.html  Report:  /home/charlee/code/cmstest/test/report.html

测试结束后可以打开report.html查看测试结果。

来自:http://blog.charlee.li/website-auto-test-with-robotframework-selenium/