手把手教你接口自动化测试 – SoapUI & Groovy
关键词:SoapUI接口测试,接口自动化测试,数据驱动测试,SoapUI进阶使用, Groovy in SoapUI, SoapUI中Groovy的使用,数据分离。阅读这篇文章需要一定的SoapUI基础,至少入过门,另外还需要一些Groovy的知识,当然如果你会java 也可以,这里用到的Groovy知识和Java很类似。另外,本文的思路和我上一篇文章<零成本实现接口自动化测试 – Java+TestNG 测试Restful service>很相似,只不过把Java+TestNG的组合换成了SoapUI+Groovy, 另外测试对象也换成了基于Soap的web service, 依旧用Excel来管理数据,做到数据分离。由于我用到的SoapUI是免费版本,相比Pro版,少很多的功能,像DataLoop之类的,所以只能通过Groovy写一些脚本来做数据驱动的测试。
首先打开SoapUI, 新建一个Workspace 名为Demohttp://images.cnitblog.com/blog/713188/201501/201035562979217.jpg
然后点击File->New soapUI Projecthttp://images.cnitblog.com/blog/713188/201501/201037539065247.jpg
然后输入你的Project Name, WSDL 地址 点击OK
http://images.cnitblog.com/blog/713188/201501/201042178133672.jpg
输入服务的用户名密码 点击OKhttp://images.cnitblog.com/blog/713188/201501/201046232356683.jpg
项目工程建好了http://images.cnitblog.com/blog/713188/201501/201050236253590.jpg
右击ServicePort 建立TestSuitehttp://images.cnitblog.com/blog/713188/201501/201056362975711.jpg
以其中一个接口为例 来生成用例http://images.cnitblog.com/blog/713188/201501/201102301723389.jpg
输入TestSuite name 然后确认工程结构如下http://images.cnitblog.com/blog/713188/201501/201105039698374.jpg
通过右击TestCase -> Add Step增加 Groovy Script 和 Propertieshttp://images.cnitblog.com/blog/713188/201501/201107218601634.jpg
增加四个Groovy Script, 并且命名成 Start, Process, Check Response, End增加5个 Properties, 并且命名成Input, Baseline, Output, Result, fieldResult调整它们的顺序,最后形成下图的工程目录结构http://images.cnitblog.com/blog/713188/201501/201115213757960.jpg
Start脚本主要创建log文件http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif View Script - Start
Process脚本是整个工程的核心,读取Excel数据文件的Input, Baseline 放入二维数组,然后循环读入Input和Baseline这两个Properties, 调用request, 取到Ouput和Result Properties的值放入Output, Result数组,最后更新Excel的Output, Result, Comparison sheet。http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif View Script - Process
Check Response 顾名思义,用来检查返回结果, 通过XmlHolder getNodeValue 来取response各节点的值,并且填入Output Properties已作对比之用。http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif View Script - Check Response
End脚本 在log上打时间戳http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif View Script - End
配置双击DemoProject, 点击下方的Properties tab然后 Add propertyhttp://images.cnitblog.com/blog/713188/201501/201348438137591.jpghttp://images.cnitblog.com/blog/713188/201501/201350130941701.jpgAdd 如下图所示的5个Propertyhttp://images.cnitblog.com/blog/713188/201501/201352078604729.jpg
双击项目工程列表里的'Demo TestCase'点击Properties tabAdd Property 如图http://images.cnitblog.com/blog/713188/201501/201357142662471.jpg
Value 填Excel 的路径http://images.cnitblog.com/blog/713188/201501/201359173607676.jpg
Excel数据工作簿里的Input sheet 如图http://images.cnitblog.com/blog/713188/201501/201411001568184.jpg
接下来需要把Input里的column name 与 Soap request里的input 字段映射起来双击Test Steps 里的request将xml文件里的?用参数来代替http://images.cnitblog.com/blog/713188/201501/201416365319849.jpg左下角的TestRequest Properties要填上用户名 密码http://images.cnitblog.com/blog/713188/201501/201440043135968.jpg
Baseline sheet里要把输出结果的字段名都定义好, 因为是根据字段名去response里取结果的每条用例期望结果都写好,用作和实际结果对比http://images.cnitblog.com/blog/713188/201501/201544478759384.jpg
另外Check Response里的脚本需要设置一下假设你的response xml文件结构如下http://images.cnitblog.com/blog/713188/201501/201427532978339.jpg如果你需要检查Soap body标签下的内容, 则你需要配置一下Check Response的脚本将xml namespace的路径配置一下http://images.cnitblog.com/blog/713188/201501/201502096881911.jpg
右击ProjectSave一下Project 最后可以运行了 双击Demo TestSuite点击Runhttp://images.cnitblog.com/blog/713188/201501/201505076884558.jpg注意:Groovy脚本也是用第三方的jxl.jar操作excel文件的,所以这个jar需要放到SoapUI安装目录的\lib下面,才能运行成功。
打开Workbook 数据工作簿查看结果Outputhttp://images.cnitblog.com/blog/713188/201501/201509068608992.jpgResulthttp://images.cnitblog.com/blog/713188/201501/201509540946857.jpgComparisonhttp://images.cnitblog.com/blog/713188/201501/201518265947095.jpg
是不是跟我上一篇文章异曲同工?
一部分图 不显示
页:
[1]