首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Selenium 实现基于 Web 的自动化测试(4)构建 JUnit 测试容器

使用 Selenium 实现基于 Web 的自动化测试(4)构建 JUnit 测试容器

构建 JUnit 测试容器以持续测试 Selenium 的测试用例我们搭建的这个容器可以检测某个文件夹里所有的测试用例自动运行 JUnit 代码进行测试。如果需要还可以将这个容器合并到持续集成环境里,以达到不间断持续功能性测试的需求。
在这里我们会用到 Ant 工具。可以在这里下载:
Ant 下载:
基础架构
图 8. 基于 Selenium 的 JUnit 的测试容器架构图可以看见测试人员的工作如紫色箭头所示,而自动化工作如蓝色箭头所示。
这套框架的意义在于,它能自动识别测试用例,并读取配置文件以测试套件运行不同的测试用例。它还可以被合并到项目持续集成软件中,定期地持续进行基于 Web 的功能性测试,并将报告以邮件形式通知管理人员。
说明:
  • 由测试人员录制脚本并导出 JUnit。
  • 测试人员修改配置文件,将测试用例包含在测试套件中。
  • 合并在持续集成软件后,框架会定期检测配置的测试套件
  • 逐个加载测试用例。
  • 以测试套件为单位其执行所有测试用例。
  • 执行完成后将测试套件的结果报告以邮件形式通知管理人员
实现这套框架最关键的当属 Ant 执行脚本了,也是程序执行的入口。这里列出 Ant 的运行脚本,以供读者参考:
清单 2. Build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
以下为部分重点内容,会在后面加以说明。完整的 build.xml 请查看附件。
<?xml version="1.0" encoding="UTF-8"?>
<project name="automationtesting" default="run" basedir=".">
……
<!-- 调用 Junit task 运行测试用例-->
<mkdir dir="${xml}/${var}" />
<junit printsummary="yes">
<classpath>
<fileset dir="${lib}">
<include name="**/*.jar" />
</fileset>
<pathelement path="${classpath}" />
</classpath>
<batchtest todir="${xml}/${var}">
<filelist refid="casesToBeRunning"></filelist>
<formatter type="xml" />
</batchtest>
</junit>
……
<!-- 调用 Junitreport task 生成报表-->
<junitreport todir="${reports}">
<fileset dir="${xml}/${var}">
<include name="TEST-*.xml" />
</fileset>
<report id="${var}_Report" format="noframes" todir="${reports}/html">
<param name="TITLE" expression="Automation Testing Results for ${var}" />
</report>
</junitreport>
……

<!-- 调用 mail task 发送邮件-->
<mail mailhost="xx.xx.xx.xx" subject="${reportResult} Result for TestSuite: ${var}">
<from address="AutomationTestTool" />
<to address="xxxx@cn.ibm.com" />
<message mimetype="text/html" src="${reports}\html\Testsuite-report-${var}.html">
</message>
<fileset dir="${reports}\html">
<include name="Testsuite-report-${var}.html" />
<include name="Testcase-reports-${var}.zip" />
</fileset>
</mail>
</project>




说明:程序的入口是 Run task,在 Run task 里先是编译整个工程,然后读取 TestSuites.xml 配置文件,循环执行每一个测试套件。过程中,以此执行以下操作:
  • 读取配置的并且实现 TestCase 的 Java 类;
  • 调用 Ant 的 junit task 执行测试用例;
  • 调用 Ant 的 junitreport task 生成报表;
  • 调用 Ant 的 mail task 发送报表到指定邮箱。
清单 3. TestSuites.xml 配置文件样例
1
2
3
4
5
6
7
8
9
10
<TestSuites>
<TestSuite enable="false" id="DiscoverTestSuite">
<Testcase>VerifyLogin</Testcase>
<Testcase>DiscoverDevice</Testcase>
</TestSuite>
<TestSuite enable="true" id="DeleteDeviceTestSuite">
<Testcase>VerifyLogin</Testcase>
<Testcase>DeleteDevice</Testcase>
</TestSuite>
</TestSuites>




说明:配置文件中定义了两个测试套件,第一个包含了 2 个测试用例,先 Login 再发现设备。第二个也包含了 2 个测试用例,先 Login 再删除设备。而第一个测试套件 enable=false 将不被执行。
到此为止,一个简单的可持续测试框架就已经搭建完毕,来运行下看看结果吧
运行测试组建
用 ant 命令执行 Build.xml 即可运行测试框架。
图 9. 工具运行时执行完成后就会将所有测试用例的结果以报告形式发送邮件到指定邮箱。
图 10. 报告式样
返回列表