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查看测试结果。

你可能感兴趣的:(Web,test,python,selenium,robotframework)