基于Sahi和Twist搭建的Web自动化测试框架

发表于:2012-11-19 10:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:黎亮    来源:tester

  这个框架并没有什么特别复杂的地方,基本就是将Sahi中的Java API进行封装,然后使用Twist中的已有功能来对系统进行自动化测试。下载两个工具后,就可以进行测试场景的编写和自动化。下面是作者在这个项目中总结的一些经验和技巧:

  1、把握好测试场景描述的粒度。在Twist的场景中,应尽量使用业务语言来描述测试步骤,而避免使用操作性的语言。在Twist帮助文档中有一章高级指导(Advanced Tutorial),其中专门提到在不牺牲可读性的前提下,应最大限度的用抽象概念来描述步骤。这里的抽象概念就是指的具体业务逻辑。但就个人经验而言,抽象还是有度的,太抽象的描述复用性就不够好了。读者可通过多尝试多思考来把握这个描述的粒度。

  2、为测试场景加标签并按顺序为其命名。可能大家比较习惯于为一个待测功能单独建立一个文件夹,并将测试场景都放在里边,但由于在Twist视图下,只对Scenario目录下的场景可见,如果在其目录下建立子目录,将无法使用Filter的功能。所以建议为每一个场景加上标签,可以是功能的编号或名称,这样就可以分类查看和运行了。另外,在Twist视图中,所有的场景是按名称的字母序来排列的,故建议在场景名称前加01,02,......。(eg.01Login,02SearchBook.加0是因为根据字母序11是在1和2之间的)这样便于查找以及管理场景执行的先后顺序。

  3、当用Sahi定位动态生成的页面元素时,应使用in,near等方法配合别的页面元素来进行定位。比如测试步骤为点击一个数据列表中某一行里的图片链接,如果使用Sahi录制,生成出来的元素ID可能跟HTML里的元素ID一样,也可能是一串很长的数字,可读性较差,测试代码也较难维护,这时可以先根据序列号或者标题字符串等定位到该行的某一个位置,再结合Sahi中in和near方法,定位到这行上的图片链接。

  4、需要用多组数据来测试同一场景时,尽量使用Twist中提供的Data Table功能。在Twist里,可以将来自不同数据源的数据导入到测试中,并且支持选择每次需执行的几组数据。

  5、完善错误处理机制。在场景运行失败的时候,可加入一段代码,截屏保存当时的出错页面,同时,将被测系统的日志文件截取部分放到指定文件夹,这样就能更加方便地分析定位问题。(在Sahi专业版中可直接使用takeSnapShot()方法进行截屏,如果使用免费版,可使用其它方法实现,例如类java.aw.Robot中的createCapture()方法)

  6、导出build.xml文件,整合其它工具。在Twist中,我们可以导出ant文件,并且编写我们需要的task,例如在不同浏览器上运行,或者是运行某一标签的测试场景等,这样就可以在不打开Twist的情况下,通过运行命令行的方式来执行测试。这些命令还可以放到其它工具中进行整合,例如持续集成工具Hudson,可在build完成后自动运行一些基础测试。

  总的来说,Twist和Sahi是比较适合一个小型测试团队进行自动化测试的。Twist能够有效地减少搭建自动化测试框架的时间,让测试人员更多的关注在业务逻辑上面,有兴趣的读者可以下载Twist的试用版进行尝试。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号