认识Selenium -- Test Runner 模式和使用

来源:互联网 发布:剑三喵哥捏脸数据大全 编辑:程序博客网 时间:2024/06/08 15:11

test runner 模式

Selenium test runner 脚本,也称测试用例(test case),是用 HTML 语言通过一个简单的表布局编写的,如下代码:

Selenium 测试用例的结构

 <table border="1">    <tr>      <td>First commandtd>      <td>Targettd>      <td>Valuetd>    tr>    <tr>      <td>Second commandtd>      <td>Targettd>      <td>Valuetd>    tr>  table>
test runner 脚本通常与所测试的应用程序(AUT)部署在同一个服务器上
这是因为 browser bot 使用 JavaScript 来模拟用户操作。
这些脚本在一个受限制的沙箱环境中运行。
如果需要绕过这些限制,可以使用一个代理。

.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

test runner 脚本使用与 xUnit 框架相同的测试套件(test suite)和测试用例概念。测试用例和命令按照它们在测试套件和测试用例中出现的顺序依次执行。

在 以上代码 中:

  • 第一列包含命令断言
  • 第二列包含命令或断言的目标(target)。这里可以用多种受支持的组件定位符中的一种来指定目标。通常使用的是组件的 ID 或名称,但 XPath 和 DOM 定位符也是受支持的。
  • 第三列包含用于为命令或断言指定参数的。例如,当使用 type 命令时,这一列可能就是一个文本域所期望的值。

 

即使对于非技术人员来说,test runner 脚本也易于阅读和编写。当在一个浏览器中打开 上面的代码 中的例子时,将得到类似这样的一个表:

First command Target Value Second command Target Value

 

测试用例实例

执行 如下的测试脚本时,它将执行以下操作:

  1. 通过进入 TestSelenium2.html 打开变更地址页面。
  2. 在 ID 为 q 的文本框中输入 Betelgeuse state prison
  3. 单击名为 'btnZzk' 的输入区。注意,这里使用 XPath 找到 Submit 按钮,这导致表单数据被发送到服务器。
  4. 验证页面是否包含文本 Address change successful
<table>    <tr>      <td>opentd>      <td>TestSelenium2.htmltd>      <td>td>    tr>    <tr>      <td>typetd>      <td>//input[@id='q']td>      <td>Betelgeuse state prisontd>    tr>    <tr>      <td>clicktd>      <td>//input[@id='btnZzk']td>      <td>td>    tr>    <tr>      <td>verifyTextPresenttd>      <td>Address change successfultd>      <td>td>    tr>  table>
感觉这里的代码跟使用Selenium RC 测试时,代码似乎很相似,不同就是RC是用我们平常使用的高级编程语言来测试,而Test Runner是用HTML来表示的。
我的TestSelenium2.html页面内容很简单:
<input type="text" id="q"/><input type="button" id="btnZzk" onclick="zzk()" text="找找看"/><div id="div1">div><script>    function zzk()    {        document.getElementById("div1").innerHTML="Address change successful";    }script>
QQ截图未命名 
.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

点击右侧“运行选定的测试”开始测试:

运行全部是绿色的,表示通过.

1

1Run,1Passed,运行测试通过。

2

在页面的下方,出现了我们要测试的页面TestSelenium2.html,也正是我们期望的现实内容。

3