您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
selenium开源功能测试工具
作者:网络转载 发布时间:[ 2012/12/12 14:33:07 ] 推荐标签:

观察上面提到的代码,其中使用selenium来操纵web应用的行为,这在Remote Control里是常见的做法,但是仍然不够好,我们可以做一些小的变化以得到更好的测试:

 1   protected   void  setup()   {
 2      selenium  =     //  intialize selenium instance
 3        user  =  selenium;
 4      currentPage  =  selenium;
 5 }
 6  
 7    public   void  login(String username, String password)   {
 8      user.open( " http://localhost:8080/login" );
 9      user.type( " id=username " ,username);
10      user.type( " id=password " , password);
11      user.click( " id=login_button " );
12 }
13
14    public   void  testShouldShowAWeclomeMessageAfterUserLoggedIn()   {
15      login( " some guy " ,  " password " );
16      assertTrue(currentPage.isTextPresent( " Welcome to xxxx " ));
17 }

基本上这只不过是"另一种写法"而已,但是它更好的表达了"用户的行为",如login代码所示。以及"系统的正确相应",即currentPage.isTextPresent()。这种是典型的对编译器无意义对人有意义的代码,也是普遍意义上好的代码。
3. Creating a DSL base on your test codes

懂得HTML的QA可以在没有DEV的帮助下使用Selenium FIT mode,然而却不能在没有DEV的帮助下使用Driven Mode。于是自然也是fashion的做法,是在已有的test codes之上提供Testing DSL或者Scripting Language,让FIT mode变得更加FIT。这方面内容是一个更大的主题,以后再详细展开吧。

4. Hacking Selenium Object to support FIT command

Selenium FIT mode和RC mode下的命令有些许差异,比如FIT中的assertTextPresent,在RC中变成了isTextPresent。同样还有FIT中实用的命令clickAndWait,在RC中变成了click和waitForPageToLoad。在RC中使用FIT mode中的命令也非难事,找到com.thoughtworks.selenium.Selenium,添加方法:

  public   void  doCommand(String commmand, String parameters);

然后在com.thoughtworks.selenium.DefaultSelenium中添加实现:
1   public   void  doCommand(String commmand, String parameters)   {
2      String[] paras  =   new  String[]  { "" , "" , "" }
3      for  ( int  i  =   0 ; i  <  parameters.length  &&  i  <   3 ; i ++ )
4        paras[i]  =  parameters[i];
5     commandProcessor.doCommand(command, paras);
6 }

然后试验一下:

  selenium.doCommand( " clickAndWait " );

在我们使用纯RC mode之前曾经用过一段中间方案,将rc code转化为fit code来跑(因为rc不支持https),由于不是真正的rc mode,像isTextPresent之类的方法都没有办法使用,只能使用FIT mode command。因此如果因为一些特殊的原因(https, chrome起不来,hta bug多等等),你没有办法使用RC mode,但是有希望得到RC可重构的好处,那么这个tricky的技巧倒是不错的选择。

5. Using chrome and IE hta lanucher to support https
6. Run test using different browser lanucher to test browser compatibility

这两个都是和browser lanucher相关的,Selenium和JWebUnit大的不同在于它使用真实的浏览器来跑测试,从而可以更加真实地考察系统在不同浏览器中的表现。因此使用不同的浏览器lanucher来运行测试,可以更好测试应用的浏览器兼容性,这对于web 2.0应用而言是很有帮助的。此外,使用rc提供的试验性lanucher,chrome和hta可以解决跨domain测试和https的问题。不过目前hta还是有很多bug的,推荐使用chrome。当然,希望的还是澳洲的同事可以早日在selenium里提供https支持。

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd