Soapui是一个开源测试工具,用户可通过Soapui来检查、调用和实现Web Service的功能/负载/符合性测试。它可作为一个单独的测试软件使用,也可利用插件集成到Eclipse、maven2.X、Netbeans和intellij中使用。Soapui是一个自由和开发源码的跨平台功能测试解决方案,用户可通过一个易于使用的图形界面和企业级功能让用户轻松、快速创建和执行自动化功能。同时在一个测试环境中,Soapui提供完整的测试覆盖,并支持所有的标准协议和技术。此外,Soapui还提供了命令行工具,可让用户轻松运行各种任务调度程序,或作为用户的构建过程中的一个组成部分MockServices集。
破解教程
1、安装的方法很简单,双击“SoapUI-x64-5.1.3.exe”开始正式的安装(不过注意该程序仅支持64位操作),之后的安装方法很简单直接默认点击下一步即可
1、解压后复制Protection-4.6.jar到soapui安装的lib目录下面,替换原来的文件
2、直接打开binsoapui-pro.bat批处理文件,然后再导入scz.key文件
功能
1、MockServices通过SoapUI提供独特的能力,能够模仿Web Services,并创建/运行对他们的功能和负载测试,即使在系统部署前,这些也能够开展
2、可以减少构建完整产品环境的副本所需的花费,以及提供您的客户访问能力,而不必为他们等待被完成
3、在SoapUI,用户不用花费很多努力就可以创建符合标准Mocks - 只需选择一个想要的WSDL,SoapUI能够自动生成MockService和它的方法
4、可自定义任何用户喜欢的响应方式
5、高级脚本功能来模拟任何想要的行为 - 固定响应,随机错误,动态结果等
6、SoapUI提供了所有所需的工具来测试和完善的测试
7、总览标签给你一个项目的所有内容和全面的看法,只需一次点击,您可以添加任何数量的断言为验证传入的消息TestStep
8、可使用功能强大的HTTP监视器记录,分析甚至修改客户机-服务器通信
9、可轻松创建和运行数据驱动测试
优势
1、SoapUI的设计为技术和非技术用户带来了简化和完善的测试体验
2、这种易于使用的图形界面简化了对基于SOAP和REST的Web Service的测试
3、创建一个负载测试,您只需右键点击一个功能测试,然后以负载测试运行
4、或者使用拖放创建任何简单或复杂测试场景
5、对于有经验的用户,SoapUI Pro提供属性传递向导,可以自动传递选定内容的属性,使得复杂的测试用例或信息流的创建变得简单
6、对于最大的控制和灵活性,SoapUI Pro还提供了即用的现成的高级脚本,可以支持几乎任何的测试
7、无论你是一个测试人员,开发人员,业务分析师或经理,SoapUI为每个角色提供了不同的功能
命令行
直接执行testrunner.sh将给出帮助手册:
soapUI Pro 4.5.2 TestCase Runner
usage: testrunner [options]
-F Report format. Used with -R. Valid options PDF, XLS, HTML, RTF,
CSV, TXT, and XML (comma-separated)
-v Sets password for soapui-settings.xml file
-t Sets the soapui-settings.xml file to use
-A Turns on exporting of all results using folders instead of long
filenames
-D Sets system property with name=value
-E Sets the environment
-G Sets global property with name=value
-I Do not stop if error occurs, ignore them
-M Creates a Test Run Log Report in XML format
-P Sets or overrides project property with name=value
-R Report to Generate
-S Saves the project after running the tests
-a Turns on exporting of all results
-c Sets the testcase
-d Sets the domain
-e Sets the endpoint
-f Sets the output folder to export results to
-g Sets the output to include Coverage HTML reports
-h Sets the host
-i Enables Swing UI for scripts
-j Sets the output to include JUnit XML reports
-m Sets the maximum number of TestStep errors to save for each
testcase
-o Opens generated report(s) in a browser
-p Sets the password
-r Prints a small summary report
-s Sets the testsuite
-u Sets the username
-w Sets the WSS password type, either 'Text' or 'Digest'
-x Sets project password for decryption if project is encrypted
命令行格式:testrunner [选项] soapui工程的xml文件
主要命令选项说明:
-D 设置system property,即可以设置SoapUI——Help——System properties菜单下的属性值
例如命令行指定-Dfile.encoding=UTF-8
-I 设置为用例执行中出现错误时不停止,继续执行
-a 默认SoapUI只会在用例执行时有错时(如断言有错),才会生成.txt的包含请求、响应的详细日志信息,便于查看当时请求出 错的详细情况,若加上-a选项,则不论出错与否都将生成该报告文件。
-f 设置报告输出的路径,不指定则默认为输出到当前目录下
-j 生成JUnit格式的XML报告文件
-r 打印简略的总结报告
-s 指定要执行的用例集名称
因此命令行执行SoapUI用例可以如下:
sh testrunner.sh -Dfile.encoding=UTF-8 -I -s $testsuit -r -j -f $REPORTS_PATH $TESTSUIT_PATH/soapui_example.xml
执行完成后将生成JUnit格式的xml报告文件,可在Jenkins中生成测试报告及接口响应性能趋势图等
出错时生成的.txt格式的包含详细请求参数及响应数据的日志报告文件可以邮件附件形式发送,进行及时反馈及出错时问题定位
输入参数为字符串如何输入?
参考以下:
354561031959904
]]>
怎么发送json?
左边选json
碰到数组怎么填充数据?
例如如下数据,calendar_id是需要根据返回值动态获取的,此时需要通过获得数组中的calendar_id
{"calendar":
[
{"calendar_id":"1705","showtime":"1288927800","endshowtime":"1288931400","allDay":false},
{"calendar_id":"1706","showtime":"1288933200","endshowtime":"1288936800","allDay":false},
{"calendar_id":"1709","showtime":"1288935600","endshowtime":"1288938900","allDay":false}
]
}
在SoapUI中可以通过groovy脚本实现提取json数组数据,提取到数据后就可以遍历访问列表中的每条新闻正文了
1.新建一个REST请求步骤,获取接口返回的数据
2.新建一个DataSource步骤,选择Groovy方式
3.添加一个名为cal_id的Properties
4.groovy编辑框中输入实现代码
[java] view plain copy
import groovy.json.JsonSlurper
def xresponse = testRunner.testCase.testSteps["getCalendarListByCoid"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def re = slurper.parseText(xresponse)
def num=re.calendar.size()
def i = testRunner.testCase.testSteps["DataSource"].currentRow
if(i<num)
{
result["cal_id"]=String.valueOf(re.calendar_id.id[i])
}
5.新建一个Property Transfer步骤,将DataSource的cal_id传递给当前testCase的变量
6.新建 一个REST请求步骤,将得到的cal_id去请求另一个接口
7.新建一个DataSource Loop步骤,使DataSource与Property Transfer步骤循环,这样就可以遍历数组中的每个数据了
[reply]tz0705010216[/reply]
你好
以博文中的json为例,新增的groovy步骤则如下:
def xresponse = testRunner.testCase.testSteps["getCalendarListByCoid"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def re = slurper.parseText(xresponse)
def id = re.calendar.calendar_id[i] //i为json数组中的第i个子json对象
若为在脚本断言处添加groovy断言,则如下:
def xresponse = messageExchange.modelItem.testCase.testSteps["getCalendarListByCoid"].testRequest.response.contentAsString
def slurper = new JsonSlurper()
def result = slurper.parseText(xresponse)
def id = re.calendar.calendar_id[i] //i为json数组中的第i个子json对象