我们拒绝平庸,拒绝随波逐流,拒绝墨守成规,让梦想不再流浪。

soapUI使用指南

上一篇 / 下一篇  2014-06-27 09:45:31 / 个人分类:总结

soapUI使用指南51Testing软件测试网7D)K)Uu'~R9C/`

9^ \yG2R2P9[EYgL051Testing软件测试网K:De}(I-u rw R/|

前言:本文介绍了XX项目测试过程中,使用到的soapUI工具的一些特性,供有需要的同事参考。由于时间仓促和项目测试过程中使用的局限性,未涉及到soapUI的全部功能,未涉及和不详尽的部分,将补充到后续版本中。51Testing软件测试网v@hOf7git

51Testing软件测试网$xe'eR9kU6]Z6ql$hC

soapUI是一个简单易用的测试web service的工具。它通过soap/http来调用web service,从而实现对web service的功能/负载/符合性测试。该工具既可作为一个桌面应用软件使用,也可利用插件集成到Eclipse中使用。本文重点介绍将soapUI作为桌面应用软件的使用方法。51Testing软件测试网.j3~![:I3~P:bA F.p

drkj8@mhd]&ut0官方网址:http://www.soapui.org/

AS4zuBA0

8f E4fd^4i|V\0下载地址:http://sourceforge.net/projects/soapui

E,toc,e3j z/m`#q0

/B0Q*]*rW!fxh~r0本文使用的版本:soapUI-Pro 2.5–beta251Testing软件测试网%_+t-G+lTS]

一、soapUI软件的安装

"g;j7Os8[0JPm#o0

nb*s9H}A~zz0soapUI有普通版和专业版,专业版相对于普通版有更多更灵活的测试步骤可以添加,所以我们选择使用专业版。从官方网站上下载了安装文件以后,还需要申请一个免费试用的许可证,试用许可证的有效期是两周,许可证的申请很简单,只需要填上邮箱、姓名和公司名称,一分钟左右邮箱就能收到试用的license。

Z g(N8F,Tu051Testing软件测试网zx/ZV4Ox~k

51Testing软件测试网K5vt8h;[8P0q

y5V%v1k;yG0安装soapUI只需一路点击【下一步】即可,安装好soapUI后会弹出如下对话框,提示输入license,点击browser找到license存放的路径,点击【OK】即可。如果试用的license到期了,可以点击【Apply For Trial】再申请一个。如下的窗口在第一次安装soapUI后会自动弹出,还可以通过菜单栏上的HelpàUpdate License调出。

9vy(^ I)iR*g0

"bj2U a8` s%x051Testing软件测试网6G7_,smW|.H)p,wI]4j

N1hJ \FH0二、用soapUI进行web service的功能测试

M9Q&hyf C5A0

I ]4[:[E*`ox2a q&|01.新建一个工程

@y0e j%QΠu6b \051Testing软件测试网j_]]!i0z]*Ox a8V

51Testing软件测试网3W5Ivx]_#F+b)d

S%V4z.m1G0右键点击workspaceàNew soapUI Project,会出现如下对话框,51Testing软件测试网6l$HW5^hd#c

&iw P?$]n$H1]0

j7a:sw/c0

oPYZ#y,`XE0e0Project Name:输入给工程起的名字;

:Ji,Up`:@`0

K-^(?4G ]z$?R0Initial WSDL/WADL:web service对应的WSDL,可以输入web service对应的WSDL的路径,也可以将WSDL保存为.xml文件后导入。51Testing软件测试网-b)aC].l6}"_r

RV1K6r-W [)f"O#Y0Create Requests:为每种操作创建请求;

^%N?nLRc0

RHK'S;uF:k'n0Create TestSuite:为导入的WSDL创建一个测试套,可以在这个测试套中针对每个接口添加一些测试步骤。51Testing软件测试网W[y,w/Fq0r

%nGMTH'UL0Create MockService:创建一个模拟web service服务端的程序。51Testing软件测试网jXG*ucL

51Testing软件测试网.E)O3RY&mBtW

Add REST Service:Pro 2.5 beta2版本不支持此功能,此处不做介绍。51Testing软件测试网\$O5v|mhU(ZG

51Testing软件测试网l_zUR0N/Up

Relative Paths:创建的同时需要选择一个路径来保存工程文件,如果不选择此项,会在需要保存或者退出时才提示选择保存当前创建工程的路径。51Testing软件测试网"X1o%j EA3B

51Testing软件测试网k WG"e-f

选择好以上信息后(此处假定四个选择框都选上了),点击【OK】按钮,会首先提示选择一个保存工程的路径,选择好后点击保存,接着会弹出如下对话框,对创建的测试套进行设定,我们可以选上Generate LoadTest为每个测试case创建一个默认的负载测试。

:~VER,nP;t0

Y9y,K5KKa f-p0其它的项采用默认的设置就可以,设定好后点击【OK】,接着提示输入这个测试套的名称。名称输入以后弹出设置MockService的对话框,可以为MockService设定一个端口,默认的为8088,当要启动多个MockService时,需要为每个MockService设定一个唯一的端口。Path为MockService的路径,MockService的URL由主机IP+端口+path组成,如下的MockService路径为http://localhost:8088/mockAbilityCtrlHttpBinding。51Testing软件测试网:aA*s^v9f

|lP&~\O'Y051Testing软件测试网8mEMR.vTY-r[/{

51Testing软件测试网Pv,p0Cu&u2@

点击【OK】以后可以给此MockService取一个名称,名称输入完成后这个工程就创建完成了。

(tm J R6D$Y.pI0

0`/E@m!S p8}]02.使用TestSuite进行功能测试

vkF%cVUBj1__ u051Testing软件测试网-XD)YK8`'y1y

VII1R w0OHF)js$K*qF0

DW@IcR0刚才建好的工程主要由三个部分组成,最上面的可以用来给接口ServiceIWAuth发送简单的soap请求,中间的是对接口ServiceIWAuth创建的测试套,下面的就是MockService。对应每个接口会生成一个测试套,测试套中包含测试步骤和一个默认的负载测试(创建时可选)。测试步骤中默认包含了一个soap请求,其它的测试步骤可以根据需要自己添加,每个测试步骤的用法后面将详细介绍。51Testing软件测试网m3X ~1]3Ni7rQ

51Testing软件测试网*Tw]@FE

HJw2sJ7Y'[051Testing软件测试网"f6phg w#y(X

SoapUI的使用界面如上图所示,消息中需要携带的参数是由WSDL定义好的,工程创建时会自动生成。输入消息中要携带的参数后,点击发送,就可以将消息发送到目的地址上,返回的响应消息内容显示在右边的区域。消息发送失败时,如果返回的faultcode字段是soap:Client,大多数情况下是由于消息本身错误导致的,是客户端的错误,如果faultcode字段是soap:Server,则一定是由于服务端的错误导致发送失败。消息和响应消息的显示方式有四种,其中XML方式可以很直观的看到SOAP消息的内容和结构,如下图所示。51Testing软件测试网]Yp!F'LFdw4v K

51Testing软件测试网"L-I}$b \&a

7l5{+G g?051Testing软件测试网JUc9uINJ.MjQ3Qg

消息的发送地址,可以通过如下的方式来修改,点击地址栏后面的下拉按钮à[edit current…],就可以在弹出的对话框中修改了。51Testing软件测试网7bn:f$MT/P(I0W.?+E

51Testing软件测试网*GY8qIV7m!U

51Testing软件测试网{ yB"T2u+? S

51Testing软件测试网Z ~4y.i,}/t

3.测试步骤介绍51Testing软件测试网#fh)h9iB]xb-p7iU:f

51Testing软件测试网&p zP3_6PwH&@

51Testing软件测试网2F*Np2~A[

一个TestCase中可以添加多个测试步骤,默认的测试步骤是一个Soap Request,如下图所示,右键点击TestCase选择Add Step可以添加测试步骤,选择Show TestCase Editor可以打开编辑TestCase的界面。51Testing软件测试网[lC/eI3}XV.l

$Z K8F}0`P%q0Ea0LO0

7u2GNf8W$s4Z051Testing软件测试网8m_5I5bsJ'd,a

 51Testing软件测试网8^T!~S~%_

51Testing软件测试网b$l6l"V8N

u  Test Request:发送一个soap消息。51Testing软件测试网2Vi R Y(w[

;["Yd7I,as)D:V.v(H051Testing软件测试网e2[b }3i P f

51Testing软件测试网8Y,e5pc `Ut-G

    新增加一个发送soap消息的测试步骤时,会有如上的对话框出现,需要为这个TestRequest选择一个operation,以便确定发送的soap消息的schema。

"R0Q0v I1_+EX6wO051Testing软件测试网U0U*Qq1lI N&w

u  Groovy Script:Groovy script脚本语言写的脚本,这个的灵活性和应用范围最为广泛,但需要掌握Groovy script脚本语言的语法。51Testing软件测试网jznF|rF

51Testing软件测试网u YA/W4cH

u  Properties:保存数据的一个道具。51Testing软件测试网orG&ex

ql${/|/c auL0u  Delay:设置一个等待时间。51Testing软件测试网j!rb8J`mS;F

"_l1`e9B!]e051Testing软件测试网1hX&In5kmoL#O9?1f

51Testing软件测试网xkgya k

设置一个等待时间,当TestCase执行到这个测试步骤时就会等待一段时间,这个时间以毫秒为单位,新增这个测试步骤以后,双击它可以修改等待时间。51Testing软件测试网mgUJv jt)D.\

51Testing软件测试网 {&kLF(V"h

 

2G.Hq.P f"r@Mt m051Testing软件测试网)Z}-q#Kee

u  Run TestCase:增加一个测试Case。

m T9l8]&X6{E R051Testing软件测试网 G+XY&m_ rg8{#x!h

51Testing软件测试网'bo JGL-L

1ar3LL(Y7Ot.Uq0    可以添加已经定义好的某个测试套中的一个TestCase作为本TestCase的一个测试步骤。执行的模式可以选择每执行创建一个独立的拷贝或者直接执行被选择的那个TestCase。51Testing软件测试网;e*Q dx1z8}#ho

51Testing软件测试网v'V_lk(Y6}

Asynchronous Response:51Testing软件测试网 aMNf FlX

kf"GLB Z5M0REST Test Request:

&o\j"M |1H2h(PM051Testing软件测试网;as D4kaE5eH

u  HTTP Test Request:增加一个HTTP请求。51Testing软件测试网ak"x0r[gp

2Z)oX[2`5U6B B;QJ i0

Y?7C!u Q7b5mA'V051Testing软件测试网+E c\1] Jgn

    可以在Endpoint项设定HTTP消息要发送的目的地址,在Parameters项设定要携带的参数名、参数值、参数类型,在Method项设定消息发送的方式GET/POST/HEAD/DELETE/PUT/HEAD。51Testing软件测试网4}?:e'}K3G#x

51Testing软件测试网8h-CHZ'u%hr

u  Mock Response:模拟返回一个Response。51Testing软件测试网0M{{ Tk;]6I

q ~%yAiQA2r051Testing软件测试网jeUMHy%{

/s J'H e(^*N0    可以设定响应消息返回的路径和端口,以及要返回的响应消息体中的内容。51Testing软件测试网:g6x;i Pt{b-i

51Testing软件测试网 `3ZSF)^&it

u  DataSource:

6n+b)C^*hr(TA051Testing软件测试网 Q a^b4L:o

c K;Qd`e0

idJxt)NHin;t0    可以从文件或数据库中导入数据到DataSource中的Properties中,在发送消息时可以将参数值指定为某个Properties。51Testing软件测试网3d&m#Lt y2^}{w;W

51Testing软件测试网0_'?1a%Rh)g3[

u  DataSource Loop:51Testing软件测试网l.d0e4wD@ P

51Testing软件测试网O dNw?`!V$]5cy

这个是和DataSource一起使用的,DataSource Loop可以让某个测试步骤执行完成后再次跳转到DataSource取数据,从而达到循环从DataSource中取数据的效果,直到DataSource中全部数据都取完才停止。51Testing软件测试网$p/L~1jw uMm

51Testing软件测试网x#YX1y A5maY

51Testing软件测试网[]] a~w^ H#g

三、用soapUI模拟web service服务端51Testing软件测试网p5@9?6@@ T!go

51Testing软件测试网lZI&A0G&@Z

:{x;X+T%P ?h0MockService功能可以根据一个WSDL模拟一个web service服务端,针对发往不同的operation的消息,返回用户设定好的响应消息。

,J4SF0t9R g:`0

U2} F0h[$uj4L0   51Testing软件测试网 Z7n \p7f9h

    添加了一个MockService以后可以给Response设定指定的值,在收到请求后就返回设定好的Response。一个MockService下面能够添加多个Response,可将其中一个设为默认的,还可以用脚本来控制接受到不同的请求时返回不同的Response。

O8]`-i.^.bE!X0

oV?#Z+X|va7O0

'`ry"v"Wm051Testing软件测试网$F)d-y'Wi1ptH

设定好Response以后右键点击MockService选择Start Minimized就将模拟的服务端启动起来了。模拟的服务端的地址为[主机IP + 端口 + path],其中端口和path可以在该MockService的属性窗口中查到。如下图:51Testing软件测试网,U_-\S c8v-N\'{t D

_0},?3]O*b+FI051Testing软件测试网I,O |{?b

51Testing软件测试网O+s](vID

也可以右键点击该MockService,选择【add endpoint to interface】,然后可以在弹出的窗口中看到该MockService的地址。如下图:

~$D-\-Ep,s \{-z0

hp*T)~w\4d0

%yty3u%raZ$Y051Testing软件测试网0Adx [z kDG

为了简单验证一下我们启动的MockService是否是好用的,我们可以在该接口对应的测试套中向这个模拟服务端发送一条消息,看是否能够收到我们设定的响应。操作如下图:51Testing软件测试网+?(Gh5S,Fo

51Testing软件测试网3D/j k:gJ

51Testing软件测试网^}%C\|-P2H J!z,Q

51Testing软件测试网(U v(W%Q2G"s3pW

四、用soapUI进行web service的性能测试

x!g.t;U\x051Testing软件测试网aWL#Pjr

51Testing软件测试网vZ6P|4`'I:y-i\%h(c

51Testing软件测试网GH*A/Z&{/yeF

51Testing软件测试网#w)e@5Mt&K2W#f

右键点击我们想要做性能测试的TestCase,可以为该TestCase创建一个负载测试。创建的负载测试界面如下:51Testing软件测试网C"~4}f(yb

PlsYh%J]0

Bg Qr!k7B]r!D fg O[\051Testing软件测试网of2a&S&j#mUom&O

可以设定并发的线程数、并发策略(我们暂时只用了simple)、两个请求间的延迟时间、最大运行的次数或时间(单位:秒)。点击左上角的绿色三角形按钮就开始了负载测试,我们的观察点有,总的请求数、每秒请求数Tps、错误请求数等项。注意:一定要给做负载测试的Test request添加断言,这样SoapUI才能够统计出成功的请求数和失败的请求数。添加断言的方法如下:51Testing软件测试网i pi(K RcQ T A

点击 按钮,在弹出的对话框中选择not soap fault项,点击【确定】。再点击 ,在

*h!T Y$l9Vm051Testing软件测试网7B z`;x^8tZG

弹出的对话框中选择content,点击【确定】,在弹出对话框中输入想要在响应消息中匹配的

M/Sf;n$R1o0

@ |;brtC{ F7t0

:m.BV;Ao8{[@0内容,只有响应消息中出现和匹配内容一样的字符串时才会认为此消息成功。51Testing软件测试网2a4V}S#jbT.{y

 

&GYy0b4UB eT0

"~G4oYv4h7HI"` @051Testing软件测试网 N.U5X S+YO_[7o)h

点击 按钮可以调出负载测试的配置窗口,进行一些负载测试的参数配置。51Testing软件测试网K#si&r7U\

51Testing软件测试网/[,d:oJ VnqH7_

|6w Ti?0],P X0五、soapUI的其它功能51Testing软件测试网uiT}N \ T5eC

51Testing软件测试网]LM3AAK(I S

ky MfuK c01、  全局配置51Testing软件测试网#J0hBRL,e7g;Y

51Testing软件测试网YEV`?

点击fileàpreferences,可以调出soapUI的设置窗口,包含13项的全局设置,这些设置项对所有的工程都有效。由于设置项比较多,且每个设置项都有英文说明,在此不做介绍了。

0}EVq](h"?M5D0

r-uy'~5sdv(} K0

A3[vS Xs%n?02、 工具设置

I1F~'[e%e![z"~0

'H})b(k!L+cq.A"g0点击菜单栏上的Tools菜单,会出现一些工具的设置项菜单,本次测试使用了Launch TcpMon抓包工具,它的配置需要在fileàpreferencesàTools中设定tcpmon工具的存放路径,如(F:\software\tcpmon-1.0-bin),设定好以后,点击ToolsàLaunch TcpMon就可以调出TcpMon抓包工具了。51Testing软件测试网 M:QkHrVKrJ

51Testing软件测试网H.~C.P9QRI

51Testing软件测试网 T Yh+mN"e

51Testing软件测试网*k@5G:}p^+s)z

下面简单介绍一下TcpMon抓包工具的使用方法。TcpMon工具在抓包过程中扮演的是一个代理的角色,消息发送方先将消息发给TcpMon,TcpMon接到后再将消息转发给目标主机,目标主机接到后将响应返回给TcpMon,TcpMon接到响应后再将响应转发给发送方主机。打开TcpMon工具以后会出现如下界面:51Testing软件测试网'L x M0y,m0Wq

t O2u P4H0设置好监听端口和目标机IP+端口以后,点击【add】按钮,会出现如下窗口,当有消息发到本机的8070端口上时,会自动将消息转发到8088端口上,转发的消息和接受到的来自8088的响应消息都会被记录下来。51Testing软件测试网eRx9M iRl

s `.t&|T6P6X051Testing软件测试网N$u[y Ah

51Testing软件测试网0L c{&hn7~


TAG:

引用 删除 休行修心   /   2018-01-24 11:47:46
对于初学者够用了
引用 删除 休行修心   /   2018-01-24 11:47:04
3
20120524huangm的个人空间 引用 删除 20120524huangm   /   2014-09-09 13:41:33
不错  就是能提供下载的文件就好了
20120524huangm的个人空间 引用 删除 20120524huangm   /   2014-09-09 13:40:50
1
 

评分:0

我来说两句

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 109581
  • 日志数: 89
  • 图片数: 1
  • 文件数: 15
  • 建立时间: 2013-03-01
  • 更新时间: 2018-08-23

RSS订阅

Open Toolbar