robotframework + selenium实现网站自动测试
本文参考: 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
查看测试结果。