马上要投入到一个新的项目中,爽!而且因为测试资源的紧缺,测试就我一个人,测试的内容都是WS,反正这次的进度安排都是我控制,初步打算在soapUI中实现全自动化,小试牛刀,看看能不能磨光.
好了,言归正谈,这次记录下在soapUI中怎么调用第三方的文件.
============================================================================================华丽的分割线============================================================================================
1.调用第三方JAR包.
步骤一:拿到第三方的JAR包,放在soapUI可执行文件(拿我本机举例,soapUI-Pro-4.5.1.exe)上一层的lib文件夹中.在拷贝JAR包前,会发现lib文件夹中已经含有很多JAR包.这些是soapUI中自带的JAR包,拷贝进去之后,就打开soapUI.拿我写的JAR包举例,原代码如下:
package com.shengpay.qa;
public class HelloWorld {
private String Name;
public String showName(){
Name="Kiddo";
return Name;
}
public String showHelloWorld(){
return "Hello World";
}
}
步骤二:在TestCase中新建一个Groovy Script,然后输入如下代码:
import com.shengpay.qa.HelloWorld
def helloWorld=new HelloWorld()
log.info helloWorld.showHelloWorld()
步骤三:运行Groovy Script,就能在编辑窗口下方的Log Output窗口看到结果显示如下:
Sat Sep 08 23:14:47 CST 2012:INFO:Hello World
这样一个简单的调用第三方JAR的操作就完成了.
============================================================================================华丽的分割线============================================================================================
2.调用第三方.class文件.
这个和JAR有很多类似之处,首先我把刚刚的JAR包解压缩,得到一个com文件夹,把com文件夹拷贝到soapUI可执行文件(拿我本机举例,soapUI-Pro-4.5.1.exe)同一层的scripts文件夹中.接下去的步骤可以参照上文调用JAR包的步骤二即可,完全一样.
============================================================================================华丽的分割线============================================================================================
3.调用.groovy文件
步骤一:拷问文件.路径参照拷贝.class文件的路径即可.
步骤二:Groovy Script调用.拿soapUI自带的Greet.groovy文件为例.文件路径为:scripts\soapui\demo,文件源代码如下:
package soapui.demo
class Greet
{
def name
def log
Greet(who, log)
{
name = who;
this.log = log
}
def salute() { log.info "Hello $name" }
def static salute( who, log ) { log.info "Hello again $who!" }
}
Groovy Script中调用代码如下:
import soapui.demo.Greet
def greet=new Greet("Kiddo",log)
greet.salute()
步骤三:运行Groovy Script,就能在编辑窗口下方的Log Output窗口看到结果显示如下:
Sat Sep 08 23:35:38 CST 2012:INFO:Hello Kiddo
这样.groovy文件就调用成功了.
============================================================================================华丽的分割线===========================================================================================
最近的一些心得和体会:
1.soapUI是一个很强大的工具,关键在于你怎么用.个人认为用来管理TestCase也是不为过的.另,有了调用第三方的JAR包之后,直接问开发拿JAR过来做单元测试,也成为可行(后续考虑搭建一个尝试下)
2.如果认为soapUI是一个测试WS的,带有Check DB,Provide Data等功能的工具,可能会大大低估soapUI的功能.反过来想:把soapUI当成是一个能check DB,Provide Data,Coding的工具,附带测试WS的工具,那么会大大增加平时工作中soapUI的使用率.可以把很多的check写在soapUI中,最后保存成XML文件,代替现在很多的SQL文件.
3.好友建议抛弃soapUI的GUI,直接调用soapUI的API,思考后觉得这个可行,但是以我现在的能力和精力,有难度.我觉得两者各有利弊,soapUI的GUI存在优势,比如Run TestCase的时候,可以很直观的看到那些Case是success,哪些是fail,很直观,而且在控制run的流程上很有优势,但是Code 的方便性是硬伤.如果抛弃GUI,在eclipse中Code运行,这样的话更自由应用范围更广,但是带来的Coding量更大,其实有很多的操作,系统已经帮我们执行了,省却很多 Initialize,Invoke等操作.
4.soapUI的APIDoces真心要不得,功能太弱.一般的查询还好,深入的研究迟早会让你发疯.有一个号的tips供大家参考:
1.先在APIDocs上查到在什么目录,或者直接在代码中用 log.info +getClass() 查看在什么目录.http://www.soapui.org/apidocs/
2.APIDoce上有的话,就直接看,不能满足的话,上OSChina上面看原代码.http://www.oschina.net/code/explore/soapui-4.5.1/src/java/com/eviware/soapui . 但是OSChina上的代码页仅限于soapUI-Pro-4.5.1.jar里面的代码.
3.最后一个比较笨的办法,在Eclipse中新建一个工程,导入lib文件夹下面所有的JAR包,然后就Ctrl+Shift+T 慢慢找吧~(我也是被逼的没办法的...别拍)
好了,今天就到这.一句话,soapUI值得花时间去钻研.