很多人迷信于自动化测试平台,认为这玩意是万能的,对于测试人员,不需要写代码,只需要在平台上选择一下,输入一点参数,就能达到测试的目的。想法是不错的,但关键在于实现这个平台的过程,这个就需要一个WEB开发的功底了,我们今天不谈WEB开发,就谈谈在构建这个平台前所需要做的一些工作。以接口测试为例,假如我们可以用XML来描述我们的脚本,然后在平台上选择一下啊,输入一些参数啊,然后生成一个临时的XML文件,这样也就能运行了,对吧,所以,现在把问题转化成为了如何用XML来描述我们的脚本。其实原理很简单,大家都应该知道,就是通过JAVA的反射来完成,比如,一个XML中,一个结点名表示一个方法的名称,然后结合对象后,再去invoke一下,就能执行这一句XML了,所以,首先,我们得设计一下这个XML的格式,我是这样来做的:
接下来,当然是解析这个XML了,JAVA解析XML的方式有很多种,我用的是DOM4J+XPATH的方式来做的。
解析完后,比如第一句:<url>${url}/getIpInfo.php?ip=210.75.225.254</url>,这其中的<url>表示方法名称,${url}/getIpInfo.php?ip=210.75.225.254这一句表示参数,其中${url}表示自定义的一些参数,多个参数以逗号分割。既然有方法名了,由于JAVA的invoke需要一个对象来invoke,所以,这时候,就需要一个对象了,其实对象的处理也有很多种,可以NEW一个对象,然后把NEW出来的对象放在一个静态变量里面保存,在以后要用的时候直接取。
我采取的方式是做了一个自定义的注解,在启动的时候,会自动的生成加了该注解的对象:
如此一来,对象与方法名都有了,这时候我们就可以invoke了,就能执行这句XML的结点所对应的方法了。需要注意的是有的方法需要有返回值,这时候,我们加个return的属性就可以了,把return出的值,自动的保存在静态变量中就可以了,方便下面调用。
既然XML方式写脚本可以了,那么,在搭建平台时,既可以生成一个XML的临时文件,也可以上传一个XML文件上去,再执行,就能达到我们的平台的目的了。是不是很方便?
需要源码的可以私聊我!