|
好了。一些东西都有了,接下去让我们再看看用java写的testcase。selenium 的command是基于html element的locator 的,其实selenium 并不关心element type.一般的selenium 的命令都是command(locator, value) 这样格式的。从这样的命令中我们根本看不出selenium 在对哪个element进行操作。特别是testcase比较长的情况下。可读性很差,导致到时候有问题debug起来也很麻烦。
还有一个决定因素就是我们的application用的是extjs,里面的widget很多,所以最好的脚本形式是widget.command(),这样形式的。这样可读性强很多。比如 button.click(),textfield.setvalue("abc"),grid.selectRow("afdaf");combobox.selectItem("value"); 但是没执行这样一个命令,对应的selenium命令可能不只一个,而且操作对象可能也不只一个htm element。。所以在这个时候,我们决定封装selenium。首先建立一个对应的widget的库已经对应的一些测试的API.比如Grid 需要的api有selectRow,sortAs,nextPage,prePage等等。。。。然后用selenium command 组合去一一实现他们。这个是我所花时间最多的地方。从今年两三月份到现在一直在不断的添加测试API.其实主要是参考silktest里面提供的一些主要常用的方法的。
封装好之后我们的脚本就变的很简洁了,比如 homepage.open("www.googel.com");homepage.tfSearch.setText("Selenium");homepage.btnSearch.click();homepage.waitForPageToLoad(10); homepage.assertTextPresent("Selenum");..................
就是这样tester在看脚本的时候知道selenium在干什么,而且可以和手动的test case的步骤一一对应起来。 |
|