论文部分内容阅读
摘要:该文简要介绍了CubicTest作为最简单的网页功能自动化测试解决方案之一,通过与功能更全的QTP比较来突出其优点与缺点。使用开放源码软件来替代QTP的知识,在为客户提供咨询时十分有用。最后,提供了一个开发的框架,以补充CubicTest和Selenium所不能提供的功能。这里还有很多可提高的余地,感谢那些来自论坛的优秀的软件架构师的贡献。
关键词:Web功能自动化测试;CubicTest;Selenium;QucikTest Professional
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)09-2115-04
Functional Web Testing Automation with CubicTest
JIN Ming-yan
(Tongji University, Shanghai 200092, China)
Abstract: This paper briefly introduced CubicTest as one of the easiest solutions to automate functional web testing and emphasized its strength and weakness by comparing a more fully featured HP Mercury QuickTest Professional. Knowledge of open source alternative to QTP will be useful when serving customer as consultants. Lastly, I provided an overview of the framework I developed to supplement the feature CubicTest and Selenium do not provide. There is still much room for enhancement and I will appreciate contribution from talented software architects in the community.
Key words: functional Web testing automation; CubicTest ; Selenium; QuickTest Professional
当前没有一个作为行业标准的网页功能自动化测试工具能像JUnit那样做为Java应用程序的单元测试标准。即使像Quick Test Professional(QTP,下文同)往往作为第一选择,但也因为其是一个昂贵的商业工具,所以只能是有限的使用。在我们的“测试工具箱”中,一定会有一个更方便、更容易获得的替代方法。CubicTest[1]就是这样的一个易于使用的开放源码网页功能自动化测试工具。该文主要给出了在一个探索性的项目中,对使用CubicTest和QTP的评估中的一些发现。还介绍一个我小型框架,用以对CubicTest的一些扩展和功能补充。该文还把一部分重点放在了其他CubicTest使用者对此工具的反馈,并且概述了如何在实践中对它的利用。还为提供了一些有用的信息给那些使用自动化工具为客户提供测试的顾问,或者那些网页开发人员。
1为何选用CubicTest
Opensourcetesting.org[2]网站曾经编撰过一份公开源码的功能测试工具名单。在名单中,我试图寻找一个网页测试工具,能够使我不必编写代买来执行测试用例还能确保测试用例都是自我描述且直观容易理解。大多数的工具都需要用户编写Java或者XML(可扩展标记语言)的代码来实现断言或者检查点。但是,编码要求高度熟练的人员,以及大量的精力来维护测试。因为可读性差,又增加了那些不得不维护测试用例的痛苦因素。在下面的选项中给出了CubicTest的主要特点:
1)录制用户交互。没有Java,XML或者任何编码需要。
2)以图形化屏幕工作流形式来展现测试用例。
3)与JUnit集成。可配置从Java的调用。
4)可使用文本编辑器编辑测试用例代码。
CubicTest是一个Eclipse的插件,可以在Selenium[3]中启动用以录制和执行测试用例。Selenium是另一个开放源码的网页测试工具,作为Mozilla Firefox的插件它可以录制网页的交互。使用这个功能,CubicTest能录制用户与网页的交互,并通过右击在网页中显示的文本来产生断言以及提供关键字检查。图1是CubicTest正在录制过程中的截图。在右手边,打开的Firefox浏览器中,我在文本“11111”上右键从上下文菜单中选择”Assert Test‘11111’Present”(断言文本“11111”与当前文本)。在左手边,在Firefox浏览器背后是CubicTest通过录制同步生成测试用例的功能。这种简便的使用并不需要特别的技能,这使得大量测试用例的开发变得低成本和容易部署。它的学习曲线十分容易,我和我的小组差不多花15到30分钟就可以开始上手。即使对于那些没有计算机知识和技能应届毕业生,在学历了30分钟左右的教程以后也能成功的写出测试用例。
该工具用户友好的图形表达,能使任何人都可以理解和维护测试用例,并且编程的知识也不一定是必需的。
与Java的集成给予了架构师、高级程序员很大的自由度去添加那些CubicTest周边功能用以补充那些在CubicTest范围内的缺少功能。添加了一个执行在文件中的SQL(结构化查询语言)语句的小功能,用以在执行测试用例前后准备和整理数据库。在下面的文章中,描述实施此功能的框架。
每个CubicTest的测试用例都基本上是一个XML文件,这使得用AWK,Perl或者Ruby去做类似文本替换这样的修改,相比通过GUI(用户图形界面)逐个去修改要简单的多。尽管,你通常不需要查看或修改XML的测试用例,通过脚本编辑器修改文本来驱动测试用例的功能可以是改进其维护性。例如,假设网页服务器的主机名都是内嵌在每个测试用例文件中。在不同的环境中,你就需要更改你的主机名。你可以写一个脚本来替换主机名,而不是打开每一个测试用例手工的去修改。
CubicTest是满足上述优点的工具之一。在继续深入之前,建议花30分钟左右阅读其教程用以了解那些我描述的优点。请相信,这十分容易。
图2框架结构
4进一步的工作
目前,正在探索一种能用简单的方法来添加数据检查功能的框架。其关键因素是:
1)测试设计人员不是必须要写Java代码。
2)可以避免重复的精力去创建和维护那些供测试人员使用的文档(通常是电子表格)和供程序使用的(通常是XML)的测试数据,期望数据。成功的测试自动化的关键是就花最少的功夫。
相信这十分方便使人们在一个电子表格中看所有测试用例的测试数据和预期数据,以便快速了解每个测试用例间的差别。在团队中,使用了这种方式来设计和审查测试数据和预期数据。更好的讲,如果能转换人们可阅读的电子表格到程序阅读的XML文件,并利用数据库测试框架,比如DbUnit,来加载、清除和验证数据库状态。另一种可能性是从数据库中生成XML文件和电子表格。
5结束语
希望从该文的读者中获得建议或意见。此外,欢迎读者修改、扩展和改进框架代码并且在论坛中共享。
参考文献:
[1]“CubicTest”, OpenQA[EB/OL].http://cubictest.seleniumhq.org/.
[2]“Functional test tools”, opensourcetesting.org[EB/OL].http://www.opensourcetesting.org/functional.php.
[3] SeleniumHQ [EB/OL]. http://seleniumhq.org/jinmingyan.1981@gmail.com.
关键词:Web功能自动化测试;CubicTest;Selenium;QucikTest Professional
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)09-2115-04
Functional Web Testing Automation with CubicTest
JIN Ming-yan
(Tongji University, Shanghai 200092, China)
Abstract: This paper briefly introduced CubicTest as one of the easiest solutions to automate functional web testing and emphasized its strength and weakness by comparing a more fully featured HP Mercury QuickTest Professional. Knowledge of open source alternative to QTP will be useful when serving customer as consultants. Lastly, I provided an overview of the framework I developed to supplement the feature CubicTest and Selenium do not provide. There is still much room for enhancement and I will appreciate contribution from talented software architects in the community.
Key words: functional Web testing automation; CubicTest ; Selenium; QuickTest Professional
当前没有一个作为行业标准的网页功能自动化测试工具能像JUnit那样做为Java应用程序的单元测试标准。即使像Quick Test Professional(QTP,下文同)往往作为第一选择,但也因为其是一个昂贵的商业工具,所以只能是有限的使用。在我们的“测试工具箱”中,一定会有一个更方便、更容易获得的替代方法。CubicTest[1]就是这样的一个易于使用的开放源码网页功能自动化测试工具。该文主要给出了在一个探索性的项目中,对使用CubicTest和QTP的评估中的一些发现。还介绍一个我小型框架,用以对CubicTest的一些扩展和功能补充。该文还把一部分重点放在了其他CubicTest使用者对此工具的反馈,并且概述了如何在实践中对它的利用。还为提供了一些有用的信息给那些使用自动化工具为客户提供测试的顾问,或者那些网页开发人员。
1为何选用CubicTest
Opensourcetesting.org[2]网站曾经编撰过一份公开源码的功能测试工具名单。在名单中,我试图寻找一个网页测试工具,能够使我不必编写代买来执行测试用例还能确保测试用例都是自我描述且直观容易理解。大多数的工具都需要用户编写Java或者XML(可扩展标记语言)的代码来实现断言或者检查点。但是,编码要求高度熟练的人员,以及大量的精力来维护测试。因为可读性差,又增加了那些不得不维护测试用例的痛苦因素。在下面的选项中给出了CubicTest的主要特点:
1)录制用户交互。没有Java,XML或者任何编码需要。
2)以图形化屏幕工作流形式来展现测试用例。
3)与JUnit集成。可配置从Java的调用。
4)可使用文本编辑器编辑测试用例代码。
CubicTest是一个Eclipse的插件,可以在Selenium[3]中启动用以录制和执行测试用例。Selenium是另一个开放源码的网页测试工具,作为Mozilla Firefox的插件它可以录制网页的交互。使用这个功能,CubicTest能录制用户与网页的交互,并通过右击在网页中显示的文本来产生断言以及提供关键字检查。图1是CubicTest正在录制过程中的截图。在右手边,打开的Firefox浏览器中,我在文本“11111”上右键从上下文菜单中选择”Assert Test‘11111’Present”(断言文本“11111”与当前文本)。在左手边,在Firefox浏览器背后是CubicTest通过录制同步生成测试用例的功能。这种简便的使用并不需要特别的技能,这使得大量测试用例的开发变得低成本和容易部署。它的学习曲线十分容易,我和我的小组差不多花15到30分钟就可以开始上手。即使对于那些没有计算机知识和技能应届毕业生,在学历了30分钟左右的教程以后也能成功的写出测试用例。
该工具用户友好的图形表达,能使任何人都可以理解和维护测试用例,并且编程的知识也不一定是必需的。
与Java的集成给予了架构师、高级程序员很大的自由度去添加那些CubicTest周边功能用以补充那些在CubicTest范围内的缺少功能。添加了一个执行在文件中的SQL(结构化查询语言)语句的小功能,用以在执行测试用例前后准备和整理数据库。在下面的文章中,描述实施此功能的框架。
每个CubicTest的测试用例都基本上是一个XML文件,这使得用AWK,Perl或者Ruby去做类似文本替换这样的修改,相比通过GUI(用户图形界面)逐个去修改要简单的多。尽管,你通常不需要查看或修改XML的测试用例,通过脚本编辑器修改文本来驱动测试用例的功能可以是改进其维护性。例如,假设网页服务器的主机名都是内嵌在每个测试用例文件中。在不同的环境中,你就需要更改你的主机名。你可以写一个脚本来替换主机名,而不是打开每一个测试用例手工的去修改。
CubicTest是满足上述优点的工具之一。在继续深入之前,建议花30分钟左右阅读其教程用以了解那些我描述的优点。请相信,这十分容易。
图2框架结构
4进一步的工作
目前,正在探索一种能用简单的方法来添加数据检查功能的框架。其关键因素是:
1)测试设计人员不是必须要写Java代码。
2)可以避免重复的精力去创建和维护那些供测试人员使用的文档(通常是电子表格)和供程序使用的(通常是XML)的测试数据,期望数据。成功的测试自动化的关键是就花最少的功夫。
相信这十分方便使人们在一个电子表格中看所有测试用例的测试数据和预期数据,以便快速了解每个测试用例间的差别。在团队中,使用了这种方式来设计和审查测试数据和预期数据。更好的讲,如果能转换人们可阅读的电子表格到程序阅读的XML文件,并利用数据库测试框架,比如DbUnit,来加载、清除和验证数据库状态。另一种可能性是从数据库中生成XML文件和电子表格。
5结束语
希望从该文的读者中获得建议或意见。此外,欢迎读者修改、扩展和改进框架代码并且在论坛中共享。
参考文献:
[1]“CubicTest”, OpenQA[EB/OL].http://cubictest.seleniumhq.org/.
[2]“Functional test tools”, opensourcetesting.org[EB/OL].http://www.opensourcetesting.org/functional.php.
[3] SeleniumHQ [EB/OL]. http://seleniumhq.org/jinmingyan.1981@gmail.com.