SoapUI中文教程.docx
- 文档编号:12260872
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:19
- 大小:954.08KB
SoapUI中文教程.docx
《SoapUI中文教程.docx》由会员分享,可在线阅读,更多相关《SoapUI中文教程.docx(19页珍藏版)》请在冰点文库上搜索。
SoapUI中文教程
SoapUI使用说明
1SoapUI介绍
由于Web服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,在SoapUI等工具出现之祈,测试人员不得不自己编写程序来测试它.这就要求测试人员花费很大的精力了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。
SoapUI的出现极大的改变了这一局面。
作为一个开源的工具,SoapUI强大的功能、易用的界面,吸引了很多用户。
用户可以在SoapUI中通过简单的操作完成复杂的测试,不需要了解底层的细节,极大的减轻了工作量。
SoapUI支持多样的测试,例如功能测试,性能测试,回归测试等。
到目祈为止SoapUI的下载量已经超过了100万次,成为了Web服务测试标准和领先的Web服务测试工具。
它不仅仅可以测试基于SOAP的Web服务.也可以测试REST风格的Web服务,后者也是本文介绍的重点。
SoapUI基于Java开发,支持多个平台,安装非常简单。
读者可以到SoapUI的官方网站下载一个安装包(本丈使用的是Window版本,直接安装即可。
在该安装包中,包括了一个SoapUI所需要的版本。
安装完毕以后,读者需要设置JAVA_H0ME变量指向到相应的JRE目录,同时修改PATH变量,将的bin目录添加进去。
2SoapUI使用过程
创建/导入工程
安装并运行SoapUI之后,你就可以创建第一个SoapUI工程了。
程序第一次打开时,左侧导航面板上,自动有一个空的Projects工程。
右击左侧导航面板中的工作空间节点•'Projects”,选择**NewSoapUIProject”。
图表2-1
页面弹出"NewSoapUlProjectTAB页,填入ProjectName,InitialWSDL/WADL可填入URL地址或直接导入WSDL丈件,导入文件后.
如下图所示:
4NevsoapUIProject
Newso&pUIFroiect
CreatesanewsoapUIProiectinthisworkspace
0Creat色samplerequestsforalloperations?
0CreatesaTestSuitefortheimportedWSDLorWADL
CreateMockService:
[_dCreate:
saWebServiceSimulationoftheimportedWSDL
AddRESTService:
ffi
[ok][caned]
图表2-2
默认选上:
CreatesamplerequestsforalIoperations(说明:
为每个接口创建一个请求的例子)CreatesaTestSuitefortheimportedWSDLorWADL(说明:
为WSDL或WADL创建一个测试包)
点击0K按钮后,页面弹出保存工程的提示,以project名称+”的形式进行命名•因此上述工程在保存时页面给出默认命名为,直接点击保存即可。
保存成功后,页面继续弹出uGenerateTestSuite"TAB页:
图表2-3
选择:
SingleTestCasewithoneRequestforeachOperation(说明:
为每个接口的请求都创建一个测试用例)
Createnewemptyrequests(说明:
创建一个空的请求)
]
Operations中选择要测试的WS接口方法,如果一个WS有多个方法.
Operations中会列出所有方法,只须选择要测试的方法即可,上图,去掉了testIO、test2等接口的测试。
最后勾选上GeneratesadefaultLoadTestforeachcreatedTestCase(说明:
为每个创建好的测试用例生成一个默认的负载测试)
选择完毕后,点击0K按钮,进入测试用例命名页面,命名完毕后,确定。
图表2-4
在测试用例编写完毕后,可使用ctrl+s键,保存当祈的工程。
如果要导入其他人的工程,可通过选择aImportProjectM,找到,选中后即可导入工程。
创建测试用例
上面操作已经增加了tes"的Web服务,接下来可以执行请求了。
在上面增加接口的时候,已经根据WSDL的Schema定义为每一个操作创建了默认请求。
⑥・“題
©•■XRequestserviceSoapBinding
@0notify
爭Query
田“匚QueryJJC
@Quer/JSY
QueryWZ
j卧©testl
•••
i由・QtestlO
•••
i申0testS
|由Qtest3
毎test4
•••
!
test&
•••
!
审Vtest?
曲tests
由tfist9
T田tesTestSuite
圧testlTestC^se
®test4TestCase
卧“感test&TestC^se
4-test?
TestCase
圧JtestSTestC^se
由…虜test9TestCase
图表2-5
在RequestServiceSoapBinding节点下展开了WS服务中所有的方法,而我们的测试包test1_file_TestSuite中根据“创建、导入工程”的第4步,而仅创建了我们要测试的方法的测试用例。
现在将以测试testl方法为例,来介绍用例的创建过程。
按照下因所示,打下测试包下
的“testlTestCase”,在展开的“TestSteps"下选择“testl”,双击打开。
二卜⑨testl__£ile
@'IReq-uestSerriceSo^pBinding
OB3testl_file_TestSiiLte
;T…感testlTestCase
|0乍TestSteps
(1)
j•協testl|
㊂LoidTests
(1)
test4TestCase
tezt6TestCase
test?
TestCase
testSTestCase
TestCase
图表2-6
双击"test1n后,在SoapUl的右侧会出现请求编辑器:
•勺益画□口■肛如"媲・je&JM的:
BP8卿gfa呻牛3吆OQtSsi«▼]IB+©
厂
2
yojfierK.&veloxnhs;/3cYiip.fiV>wcr.w0.or®Q0010(ML$chen»rjd4nctf,<•isx:
K5cepenr^H*.! sdef/- “桂阪h的够商毁唧or》®蚣: 脚ox*书" «555*•! »? rrl>--C0p? o: _^rrv,”巧: ♦”、.k: la不力「切【'c"-r5tnpj'□r•: nc-W-.Vm: hemss^niz^.orqnkx W讹5T1・ 心刖f&VdOR・| ▲ ▼ : •nsl1e2t1Re! 4X^3eitcvcKgs上or<^3M»xtenc-le^iRelirn『"•日•垃〉「4~茨¥“•厂•“••却卿卯〉々侬才 Ue? tlRe.rns*■-m-.;»*=•? irrgpj1-Arr^r* GwdKeOin^UrFe-^ow>trc.tfrr^>l2>: ftsrt1Rfl - ・处注&rtjn、5tNp--•(aot^c: *4££-R^ltty- M«55t1fiWirn* “s心cve・ ▲ q1«竹"・L & <4^: 曲亠► Axt(0)(D)、S-A Meader? AttAC^ots(0)SSLIxfo •(I)加Loc(0) I“ 图表2-7 请求编辑器分为三部分: 1.顶部的工具栏,包含一纽请求相关的动作、操作 2.左边是请求区域 3.右边是响应区域 SoapUl默认生成的请求中,八表示需要被替换的内容。 根据需要,可以替换或者删除掉这些值。 本接口需要一个名为id的入参,可在请求区域找到如下内容: type=Msoapenc: string"xmIns: soapenc=M">"id”即为参数名,找到上面的“”,替换为abed任意字符串。 通过按下工具栏最左边的按钮(绿色箭头)来发送本次请求,请求会在后台执行,响应内容会出现在编辑器的右边,testl方法没有任何逻辑,任意的入参均不会影响到输出结果,出参为一个一维数组,第一个值为123,第二个值为456。 根据上述返回的结果报丈后,可看到接口已被正确的调用,为在测试中不用人为地进行接口功能是否正确的判断,因此加入断言Assertions,可由程序直接对返回结果进行判斷。 点击下图左上角的增加斷言按钮: 图表2-8 会弹出"SelectAssertion"对话框,通过下拉框选择“Contains”的断言,确定后弹出如下对话框,在Content中填入内容,此处是表示返回的结果报文里应该包含的字段,根損我们testl接口的返回值,填写如下•点击“0K”,插入断言完毕,程序会在运行用例时,自动帮我们校验返回的结果报文是否包含123"内容。 说明: “TestSteps"中可创建多个测试用例,组成一个测试用例集在运行该teststeps吋,会根据用例的顺序从上到下将用例进行一次测试,将上一用例的输出作为下一用例的输入再组织相应的用例,此处待进一步研究。 创建负载测试 性能测试一般使用loadrunner,或者自己写的调用客户彌进行测试。 loadrunner是全面的性能测试工具,对一般开发人员来说太重,并且需要Iicenseo自己写调用的客户端则测试的统计数拥也需要写程序处理,比较麻烦。 这里推荐使用SoapUl,SOAPUI可以直接根aWSDL生成SOAP数据包,手工填入参数后可以直接进行性能测试。 在创建完测试用例后,本工程的负载脚本也由在最初创建好工程时,已经默认创建完毕,在此可直接打开使用,如下,可直接点开LoadTests节点.节点下包含名称为“LoadTestd”的负载脚本,双击打开。 三卜国testl_£ile XRequests亡r/iceSoapBinding: 5■ff3testl_file_TestSuLte 日…感testlTestCase i日彳三T“tSteps (1) 沐”協testl 爭i-@.$-s- ◎Loa.dTests (1) TestCase test6TestCase test? TestCase test8TestCase test9TestCase 图表2-10 双击打开后.页面如下显示,设置过程参考如下,场景为100用户并发,持续运行10分钟,没有思考时间。 相应的SoapUl可设置Threads=100,TestDelay二0,Limit=600,后面的下拉框选择Seconds,表示600秒。 设置完毕后,点击左上方的绿色箭头,程序开始进行负载测试。 0smui;: ; ►只且邑严右X❷ ? 分疗纟夕1必? ;力纟鬼总力: 唸纟纺矽分疗纟夕 今冷"篦«今冷•《*今》""0“力"%今冷篦《4<今力.Y〜■■・•4♦“2Ld・y亠•✓♦,小•♦・d Lj(13f 2r%%乡"弓XT"弓多XX么乡 壬[SewD-ls VV! *fVVv*・ -••…八…' ▼1 匚 S Thrcid? LSirit^Q|Siw】e TwtStg *TestDeloy0)Kw.d八0^5) eiTte仪||ldst ent ips|byics T4t 0000 0 □ 00 0 0 ■ TesiCwe 0000 0 0 00 0 0 IX彷 Slor7y>«v' -All- _二jSI"St.pw-All-* ti«e ZZ±T 7g fbtSSW 日 t3JL^01-X>10X.ZZ.tCO l/)ag«lsxaru-lat兀IJgX>IO;W.ZZOTZ01Q Q 1^lOO! -.: C1039qi137 5tepStatus 畑tl T^stStep[testllre: «iltstatusi: FAT1ED: net.. 20XO-Ol-»】0: : 2Q: 偏3 Sl«pSKaiv» tvstl »3X0-01-^C104名35& VesTop! IzadleTt*n6c4>tSit! «■•30104838CST2010 ▼ 0er^ties Lz;»•£ntL&kL&vilvktAaavtiocol>I T«ar£>c^uScript 图表2-11 负载测试过程中,右上方会有进慶条显示测试的进度情况,SoapUl提供了2个图表和一个简要列表的形式列出了测试过程中相关数据的监控,如下图,下图为简要列表形式提供的数据: 图表2-12 点击上方红色方框框住的按钮,会弹出下方的监控图表,图中只有曲线,没有任何数据说明,只能看到变化的情况,由于无相应的刻度,而无法直观地看出数据大小: ④LoadTest11 图表2-13 SoapUl还提供了另一个图表,此图表与上与图麦类似,不过仅能显示线程数与另一统计内容的曲线变化情况,另一统计内容可通过下图红色方框里的"selectstatistic"进行选择,如下: ] 图表2-14 3与LoadRunner的比较 使用LoadRunner提供的V/ebservice协议进行相同接口的测试。 不加校验的脚本(脚本名称: LRJ1)如下: //@ooIong2/2/2010 Action() { I Ir_start_transaction(”here_start"); web_service_calI("StepName二 MSOAPMethod=H, "ResponseParam=response", "WSDL^C: /DocumentsandSettings/0wner/桌面 ,UseWSDLCopy=1", "Snapshot^, BEGIN_ARGUMENTS, "xml: sss= Hid=affM, END_ARGUMENTS, BEGIN_RESULT, END.RESULT, LAST); Ir_end_transaction(nhere_startLR_AUTO); return0; } 加了校验的脚本(脚本名称: LR_2)如下,下面的脚本提供了对返回结果的一个校验,类似SoapUl里提供的斷言: Action() { charcom[]="123"; Ir_start_transaction("here_start"); web_service_calI(nStepName=test1_101M, HSOAPMethod=H, "ResponseParam二response”, rWSDL=C: /DocumentsandSettings/Owner/桌面 /", HUseWSDLCopy=1", ,Snapshot=u, BEGIN_ARGUMENTS, > "xml: sss= Hid=affM, END_ARGUMENTS, BEGIN_RESULT, ,,test1Return[1]=Param_resu11", END_RESULT, LAST); if(strcmp(Ir_evaI_string("{Param^resuIt)"),com)==0) { Ir_end_transaction("heredstartM,LR_AUTO); Ir_vuser_status_message("成功"); } else Ir_end_transaction(”here_start",LR_FAIL); Ir_error_message(Ir_eval_string(”{Param_resuIt}*')); I } return0; I 场景与SoapUl的场景一致: 100用户并发,特续运行10分钟,没有思考时间。 对LR_2脚本进行性能测试后,发现响应时间比使用SoapUl进行测试的响应时间来的大,因此把校验过程注释掉,使用LR_1,又进行了一次负載测试。 从LR可以得到的结果图表较多,以下列出几个示意图: AnalysisSummaryPeHod: 30£「2oiow: 5? : 46・3ci・o: i・2onjii.: 08: ch SconartoNamasD: \ProgtamFila^curj>\LoadRunnet\«ccnaKio\te Rociilti;mSoccion: C! \Documcnt«andSottongc\Ovrar\LocalSfittingc\Tomp\rarac Duration! LOminuto«andL8cocondff・ StatisticsSummary MnximmfUir>r>»n : LOO Total八1*00<1卜小11(hyty): LO9Z483ZS1L avomfioYhroughnift(bvtar“XGaE,L76z872 stvdHELZ0z64Z wSecond: JL今4.898 Transact! onSummary Iransactionff*Totnl: 241>484TotalFailed ATotalStopped0AvaraqQRcsponsQ lime TransactionNarrw Minimum Averao^ Maximum Std・ Doviatlon goPercent P355 Nil Stop AcxicnTransaction 0.006 0.491 48.003 1.3$3 2.购? 120? b42 2 0 here3tort 0.006 0.431 43.003 1.363 2.989 120,642 2 0 vij^»irwridTr^n^^-i'tinri 0 0 0 0 0 100 0 0 vjsrerimtTVocwdion 0 0.047 0.582 0.095 0.122 100 0 0 图表3-1 TPS图如下: Trniisac1i«iicpoiScc«n COS0? : 001: OT01^0OZCO0230(BtO0BWW0<: W88W-XJ8WJ05X>OftOT8RSO)<©: 010CO Elapsed$c*n5roiimemm钥 图表3-2 平均事务响应吋间如下: EUpzodsconaiiofimommss TianMCiktRR^»nwwTime (SPUOUOQawsosttaybw 图表3-3 可以看到由LR得到的结果,图表丰富,数据完整,提供了更好、更直观的说明作用。 性能测试结果数据比较 ] 脚本名称 平均响应时间 总事务数 TPS SoapUl脚本 205856 LR1 120646 LR2 96636 由上表及上面的分析得出以下结论: SoapUl是专门针对v/s接口的测试工具,在实现对相同接口测试时,SoapUl表現出来的性能更优越。 SoapUl在发送请求时,是直接以组装好的soap报文进行发送,而LR是使用web_service_calI方法,从方法传入相应的参数,再由LR组装为soap报文后,再发往接口进行调用,因此LR在组装报文时,会有相应时间的耗费。 LR脚本中创建的事务,就包含了这段组装报文的吋间,因此响应时间会比SoapUl的响应时间更大。 LR与SoapUI的差别应该还有更多,在此我尚未研究的更深入。 对于LR,在测试中若增加对返回结果的校验,也会耗费一定的时间,从上面的数据可以看出,时间差大约左右,这也与校验中使用的方法有关系,如果方法高效的话,这个时间差也将更少。 全SoapUl提供的结果数据的分析不如LR那么详细与全面,但对于接口级的测试已足够,且速度更优。 目祈WS接口有多种语言可以实现,除了JAVA、C*,当前还有遇到WCF,生成的WSDL文件无法直接读到接口的入参与出参.此种接口生成的WSDL,LoadRunner读取时直接失败,暂找不到解决方法。 而使用SoapUl,本人已测试过,可支持java.C++,且wcf这种形式的接口也可支持。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SoapUI 中文 教程