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查看测试结果。
来自:http://blog.charlee.li/website-auto-test-with-robotframework-selenium/