本主题解释了如何生成 JUnit 测试,该测试表示 web 浏览器中记录的操作。
本章包含:
SOAtest 可以生成 JUnit 测试,它代表一个新的或之前记录的 web 场景。可以根据 Web 应用程序设置功能测试,然后使用生成的 JUnit 测试用例来使用 JUnit 框架验证测试结果。它提供了测试脚本的灵活性以及 SOAtest 的易用界面,而不必了解新的测试脚本语言。
生成的类文件是基于 JUnit 的,并且依赖于以下 jar 文件。
来自 <Parasoft Test install dir>/plugins/com.parasoft.xtest.libs_<version>:
来自 <Parasoft Test install dir>/plugins/com.parasoft.xtest.libs_<version>/Parasoft:
来自 <Parasoft Test install dir>/plugins/com.parasoft.xtest.libs.base_<version>:
来自 <Parasoft Test install dir>/plugins/com.parasoft.xtest.libs.base_<version>/Parasoft:
来自 <Parasoft SOAtest install dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root/lib-java-mod:
来自 <Parasoft SOAtest install dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root:
来自 <Parasoft SOAtest install dir>/eclipse/plugins/com.parasoft.xtest.license.eclipse.core.web_<version>/lib:
启动生成 JUnit 测试之前,先执行一次配置:
MyJUnitTest
。若要在记录场景时,从该场景生成 JUnit 测试:
开始记录:输入要执行功能测试的站点的 URL。
若要记录与 SOAtest“实时”运行在同一台机器上的应用程序,不要使用 localhost。相反地,使用机器名(比如,mymachine.parasoft.com)或 IP 地址(比如,10.10.11.11)。 |
MyJUnit
)。MyConvertedUnitTests
。 ${project_loc:MyJUnitTest}/src
。指定希望通过在浏览器中跟随它来捕获的功能。可以单击链接、完成和提交表单、使用导航栏进行打开的 URLs、访问快捷方式、前进或后退,等等。
为了保证记录正常运行,必须等到每个页面都已完全加载后再执行操作。 每次在执行操作之前,必须等待页面或页面的某些部分被重新加载。 |
若要完成表单,请直接在 GUI 控件中输入值,就像实际导航站点一样。例如,输入用户名和密码,选择单选按钮,选中或清除复选框,等等。 记录会话时,请注意:
|
6.关闭浏览器窗口。
将向指定的输出位置添加一个 JUnit 测试类。新项目将不会被创建或添加到测试用例资源管理器中。
若要生成 JUnit 测试,它代表以前记录的测试场景:
MyJUnit
作为类名。MyConvertedUnitTests
。${project_loc:MyJUnitTest}/src
。许多用户发现将所有测试放到同一个项目中很方便。然而,如果您愿意,可以创建多个项目。 |
若要执行生成的测试;
也可以从命令行中执行这些测试,如 Junit 文档中所述。
运行 SOAtest 生成的 JUnit 测试要求许可证信息。许可证信息有以下两种方式:
<SOAtest install root>/plugins/com.parasoft.xtest.libs.web_<version>/root/
)中检测许可证信息。如果希望在没有本地安装 SOAtest 的机器上运行测试,或者如果希望使用与本地 SOAtest 安装不同的许可证信息,那么可以控制许可证信息,而不必打开 SOAtest 并修改 UI 中的首选项。为此,使用以下构造器通过许可证信息:
WebBrowser( String installRoot, int browserType, String ffExePath, String licenseServerLocation, int licenseServerPort, int licenseServerTimeout ) |
SOAtest 生成的每个 JUnit 测试都由一个测试函数组成,该函数模拟 SOAtest 测试的测试序列。无论服务器什么时候返回响应,测试都将为测试函数中声明的响应对象赋值。应该在这些分配之后插入断言语句,以验证是否需要来自服务器的响应。
我们创建了注释块,并在其中建议在测试函数中放置断言。
例如:
public void testA() throws Exception { WebConversation wc = new WebConversation(); WebRequest req = new GetMethodWebRequest("http://mole/tests/"); WebResponse resp = wc.getResponse(req); //Begin assertions //End assertions WebLink link = resp.getLinkWith("popup.html"); link.click(); resp = wc.getCurrentPage(); //Begin assertions //End assertions WebForm form = resp.getFormWithName("childrenForm"); resp = form.submit(); //Begin assertions //End assertions } |
在上面的 JUnit 测试函数中,每次为 WebResponse 对象分配一个新值时,都会出现这些块。