1、SoapUI测试工具SoapUI测试工具1 SoapUI简介SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。SoapUI 强大的功能、易用的界面,吸引了很多用户。用户可以在 SoapUI 中通过简单的操作完成复杂的测试,不需要了解底层的细节, 极大的减轻了工作量。SoapUI 支持多样的测试, 例如功能测试,性能测试,回归测试等。到目前为止 SoapUI 的下载量已经超过了100 万次,成为了Web 服务测试标准和领先的 Web 服务测试工具。它不仅仅可以测试基于SOAP 的Web 服务,也可以测试REST 风格的 Web
2、服务。2 SoapUI 使用过程(功能测试部分)2.1创建/导入工程点击菜单File选择New soapUI Project新建工程在弹出的提示窗口中输入项目名称Project Name,然后在Initial WSDL/WADL框中输入Web Service的URL地址,或者可以直接导入Web Service 的WSDL文件。这里引用一个“中国电视节目预告 Web 服务:点击确定SoapUI工具会解析WSDL文件获取服务接口,创建请求,将项目内容显示在SoapUI的左侧窗口中,如图:由上图可以看到该服务提供了8个接口。2.2单个服务的请求及运行展开接口“getTVstationDataSet”
3、的Soap请求“Request 1”:双击查看请求的SOAP消息,如图在打开的窗口中可以看到服务请求Soap消息,其中的“?”问号代表的是入参,将其修改为请求入参值“-1”(该实例中,-1代表中央电视),然后点击图标按钮运行,获得请求结果:图中右侧窗口中可以看到返回的Soap消息及其中的数据。2.3构建测试用例选择项目“ChinaTV”并右键,选择New TestSuite,构建一个测试套件如图然后,在新建的TestSuite中右键,选择New TestCase,新建TestCase并将服务请求加入到TestCase中(Add to TestCase):如图如此操作完成后可以在项目窗口中看到新
4、建完成的测试用例TestCase1该用例包含一个测试步骤getTVstationDataSet-Request 1因为上述过程中已经设置了服务请求入参,所以这里双击TestCase 1点击可以直接运行:图中的绿色方条表示该测试运行通过。2.4增加检查点打开服务请求getTVstationDataSet Request 1,点击,添加检查点:如图检查点有多种类型,这里选择包含“Contains”并输入检查内容“中央电视台”:如图点击“OK”输入“中央电视台”点击“OK”运行服务请求后可以看到如下图可以看到检查点是有效的:Contains-VALID。2.5组织测试步骤将getAreaDataSe
5、t(获得支持的省市(地区)和分类电视列表)、getTVstationDataSet(通过省市ID或分类电视ID获得电视台列表)、 getTVchannelDataSet(通过电视台ID获得该电视台频道列表)、getTVprogramDataSet(通过频道ID获得该频道节目列表)依次加入到TestCase 1的测试步骤中去,然后组织测试步骤获取“CCTV-1”的节目列表。测试步骤:1、获得“中央电视”的分类ID“-1”2、获取“中央电视”类别中的“中央电视台”ID:“39”3、获取“中央电视台”的频道“CCTV-1”ID:“606”4、获取“CCTV-1”频道的节目列表 如图:然后需要将服务请
6、求getAreaDataSet结果中的“中央电视”ID“-1”作为服务请求getTVstationDataSet入参,右键点击getAreaDataSet-Request 1,选择Insert StepProperty Transfer,如图:这个Property Transfer用于两个服务请求间的交互,将其命名为:“AreaTransferStation”,弹出AreaTransferStation窗口,点击新建一个Property Transfer节点,命名为“中央”Source中我们选择getAreaDataSet-Request 1的Response,Target中我们选择getTV
7、stationDataSet-Request 1的Request,并通过脚本选择服务请求getAreaDataSet返回结果Soap消息中节点(AreaList4)中(areaID1)的值传递给服务请求getTVstationDataSet作为入参(theAreaID1)的值。其中:declare namespace diffgr=urn:schemas-microsoft-com:xml-diffgram-v1;用于声明命名空间,与SOAP消息中的命名空间对应。同样的操作步骤,组织好其他几个服务请求间的交互,就组织完成了一个完整的测试步骤,最后运行TestCase,看到全部的运行结果:(绿色
8、表示运行通过)3组织负载测试(负载测试部分)3.1创建负载测试用例右键单击已经创建好的测试用例,在弹出的右键菜单中选择“New LoadTest”如图:在弹出的对话框中,输入用例名称(自己命名),点击“OK”如此就完成了负载测试用例的创建3.2执行负载测试用例在负载测试用例创建完成之后,还需要配置相应的负载策略,配置窗口如下图:Limit:表示负载测试要持续执行的时间,单位为秒;Threads:配置负载测试所用的线程数,即一般性能测试中所说的并发数;Test Delay:设置测试时线程的休眠时间,即在完成一次完整的用例执行后,开始下一次执行的,线程的休眠时间,以毫秒为单位;Random:表示休
9、眠时间会在“Test Delay”*(1-0.5)=100毫秒和“Test Delay”*(1+0.5)=300毫秒之间波动;可以根据测试场景进行相应的修改。配置完负载策略之后,点击执行测试,在图中,可以看到,测试关注的数据跟随着测试的进行而持续的发生变化,得到的数据有:响应时间、每秒吞吐量(tps)、错误数(err);也可以通过点击按钮查看数据结果的整体走向图:3.3负载断言在SoapUI的负载测试中,可以定义负载测试的断言,一个最经常用且重要的断言是:Max Errors 。当负载测试过程中,出现错误,且错误数量达到Max Errors要求的值时,负载测试会停止。在LoadTest中配置LoadTest Assertion:在LoadTest底部工具栏中选择LoadTest Assertions选项卡,然后点击按钮选择需要添加的断言类型:点击“确定”,在弹出的对话框中可以设定断言的各种值设定完成,点击“OK”,添加断言成功,可以看到添加了一条Assertion再次执行该负载测试用例,超出断言所设定的值的将会报错,图中可以看到错误数比原来多了4条切换到LoadTest Log选项卡可以查看错误信息4创建MockService
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1