文章目录
  1. 1. 介绍
  2. 2. 安装
  3. 3. 使用
  4. 4. 创建Test Cases
    1. 4.1. Recodeing
    2. 4.2. Add Verification and Asserts With the Context Menu
    3. 4.3. Editing
  5. 5. Test Suits
  6. 6. 确认(verifation)和断言(assert)
  7. 7. 录制部分含有JS动态生成数据
  8. 8. 解决方案

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。包含的组件有Selenium IDE、Selenium Remote Control(RC)和Selenium Grid,因为我最近写好了页面之后每次都点来点去测试太烦了,所以决定先使用Selenium IDE进行自动化测试。

介绍

一个Firefox插件(仅支持FF),可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。

安装

从SeleniumHQ Download Page 下载IDE,选择最新版本的Selenium IDE(目前是2.6.0)。

FF会提示是否允许安装的提示,选择allow,然后一步步按照提示走下去就可以。

Restart FF之后可以在菜单栏的工具菜单中看到Selenium IDE的一项。

使用

选择打开或者是使用快捷键(Ctrl+Alt+S)打开Selenium IDE,可以看到如下界面。

点击菜单栏最右边的红点开启或者结束Record。

一个脚本实例如下:

保存在本地是*.html页面,上面那个例子的source代码主体如下:

<tr>
    <td>open</td>
    <td>/?tab=w1</td>
    <td></td>
</tr>
<tr>
    <td>assertTitle</td>
    <td>YouTube</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>//li[@id='UCOpNcN46UbXVtpKMrmU4Abg-guide-item']/a/span/span[2]</td>
    <td></td>
</tr>
<tr>
    <td>assertTitle</td>
    <td>游戏 - YouTube</td>
    <td></td>
</tr>

创建Test Cases

开发test cases 需要三种基本技术。

Recodeing

Selenium IDE 可以根据用户的动作自动添加命令(commands)到测试用例中,

Add Verification and Asserts With the Context Menu

在录制的页面中右击鼠标,最下面有相关的assert选项,用来验证到达了指定页面。

Editing

在Selenium IDE中右键insert command和insert comment;或者选定之后进行Edit。

Test Suits

Test Suit是Test Cases的集合。可以一次Run所有的Tests。可以使用Selenium IDE直接保存成Test Suit,也可以在HTML中定义,如下:

<html>
<head>
<title>Test Suite Function Tests - Priority 1</title>
</head>
<body>
<table>
  <tr><td><b>Suite Of Tests</b></td></tr>
  <tr><td><a href="./Login.html">Login</a></td></tr>
  <tr><td><a href="./SearchValues.html">Test Searching for Values</a></td></tr>
  <tr><td><a href="./SaveValues.html">Test Save</a></td></tr>
</table>
</body>
</html>

确认(verifation)和断言(assert)

确认:当测试中的一个用例存在错误时,系统将会继续运行这些测试

断言:当测试中的一个用例存在错误时,系统将会退出当前用例

总而言之,确认和断言的不同在于,当出现错误情况之后,系统将会如何处理。

录制部分含有JS动态生成数据

录制携程网站的机票预定系统,选择单程,上海到广州,日期是2014-08-26,脚本如下:

但是脚本并没有将地址信息包含进去。地址等数据是JS动态生成的,这里如何解决?

解决方案

这里就需要用户手动添加往返城市信息:右键Insert Command。分别添加:

Command        Target                Value
type          id=FD_StartCity      上海
type          id=FD_DescCity      广州

至于id如何命名,只需选定需要手动添加数值的组件然后右键鼠标,在最底部assert指令中可以看到id信息。

文章目录
  1. 1. 介绍
  2. 2. 安装
  3. 3. 使用
  4. 4. 创建Test Cases
    1. 4.1. Recodeing
    2. 4.2. Add Verification and Asserts With the Context Menu
    3. 4.3. Editing
  5. 5. Test Suits
  6. 6. 确认(verifation)和断言(assert)
  7. 7. 录制部分含有JS动态生成数据
  8. 8. 解决方案