一、soapUI简介

SOAP:

      WebService通过Http协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息头的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用WebService。

  SOAP协议 = HTTP协议 + XML数据格式

  SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

WSDL:

        好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

       WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

       WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

  WebService的工作调用原理:对客户端而言,我们给这各类WebService客户端API传递wsdl文件的url地址,这些API就会创建出底层的代理类,我调用这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成soap格式的请求数据再通过HTTP协议发出去,并把接收到的soap数据变成返回值返回。对服务端而言,各类WebService框架的本质就是一个大大的Servlet,当远程调用客户端给它通过http协议发送过来soap格式的请求数据时,它分析这个数据,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。

   SoapUI是专门针对webservice接口的测试工具,在对同一个webservice接口进行测试时,SoaqUI表现出来的性能更优越、更真实、更接近地反映接口的性能指标,对于SoapUI来说,提供的结果数据分析不如LR那么详细与全面。

(以上内容摘自CSDN)

 二、安装

SoapUI-5.3.0     下载地址:https://download.csdn.net/download/JacaCao/12578536

说明:soapUI 分开源版和专业版,开源版(OpenSource)可以免费下载和使用,专业版(Pro)需要进行购买,当然专业版提供的功能更多。如果有要求的话可以去官网进行下载。

SoapUI官网下载地址 :  https://www.soapui.org/downloads/soapui/

三、创建 SOAP 项目

1.打开 soapUI 工具,创建一个SOAP项目(在窗口左侧导航栏,右键 Projects >>> New SOAP Project)。 

2.添加SOAP接口

以国内手机号码归属地查询接口为例:

Project Name:MobileCodeWS为项目名称。

Initial WSDLhttp://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 为接口URL。

点击 OK 按钮,创建项目完成。

3.依次展开:MobileCodeWS>>>MobileCodeWSSoap>>>getMobileCodeInfo/,双击 Request 1,填写接口查询的手机号。

4.请求接口详细配置信息如下(将 183xxxxxxxx 替换为需要查询的手机号。):

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://WebXml.com.cn/">
   <soap:Header/>
   <soap:Body>
      <web:getMobileCodeInfo>
         <!--Optional:-->
         <web:mobileCode>183xxxxxxxx</web:mobileCode>
         <!--Optional:-->
         <web:userID></web:userID>
      </web:getMobileCodeInfo>
   </soap:Body>
</soap:Envelope>

5.运行测试(点击 Request 1 窗口左上角的绿色 运行 按钮,发送 SOAP 请求。右侧窗口将会显示接口返回结果。)

四、创建 REST 项目

1.打开 soapUI 工具。创建一个 REST 项目(在窗口左侧导航栏,右键 Projects >>> New REST Project。)。

2.添加REST接口

以网站《快递100》查看快递状态接口为例。

URIhttp://www.kuaidi100.com/autonumber/autoComNum?text=761173748367为接口URI。

点击 OK 按钮,创建项目完成。

3.依次展开:REST Project 1>>>http://www.kuaidi100.com>>>AutoComNum>>>AutoComNum 1>>>Request 1 , 为 REST 接口窗口。

4.点击 Request 1 窗口中左上角的绿色 运行 按钮,右侧窗口会显示接口查询结果。

五、soapUI设置Auth 

设置用户认证(Auth)

当我们请求一个接口时,一般需要认证,认证是判断用户是否有请求权限的常用手段。

1.点击  “Auth” 按钮,Authoriaztion 选项中选择 “add New Authoriaztion” ,在弹出的窗口中 Type 选择 “Basic” 选项,点击 “OK” 按钮。

2.添加认证用户。

3.填写用户认证 Username 和 Password ,勾选 “Authenticate pre-emptvely” 选项。

Username:用于填写基本认证的用户名。

Password:用于填写基本认证的密码。

Domain:域名是基本认证的可选项,设置为空。

Pre-emptive auth:设置定义认证的行为。

  • Use global preference :用于定义HTTP设置为全局首选项。
  • Authenticate pre-emptively:仅适用于此请求,不需要等待身份验证质询时发送凭据。

六、soapUI创建性能测试

1.创建测试用例(右键点击 “requests 1” 请求,选择 “Add to TestCase” ...,如下图。)。


2.默认设置测试套件名和测试用例名分别为:TestSuite 1和TestCase 1,添加 Requests 到测试用例。

3.点击 “OK” 完成测试用例的创建(右键点击 Load Tests (1)” >>> “New LoadTest , 创建完成)。

4.运行性能测试(在 “LoadTest 1” 窗口,点解右上角的绿色按钮,运行性能测试。)。

5.参数说明

Limit:表示要持续执行时间,秒为单位,默认是60。

Threads:负载测试所用的线程数,性能测试中所说的并发数。默认是5。

TestDelay:设置测试时线程的休眠时间,即在完成一次完整的测试用例后,开始下一次执行时,线程的休眠时间,以毫秒为单位,(1000毫秒等于1秒),默认是1000毫秒。

Random:该值得设置,于testDelay的设置结合在一起,它表示休眠的时间会在TestDelay*(1-0.5)=100毫秒,和testdelay*(1+0.5)=300毫秒之捡波动。此处如果设置为0,则表示test delay的值不会随意变化,直接是初始设置的毫秒数。

补充

     如果有兴趣的小伙伴想进一步了解相关详细内容,推荐如下链接:

SoapUI的参数说明:http://www.soapui.org/Working-with-soapUI/preferences.html

SoapUI 使用说明:http://www.51testing.com/ddimg/uploadsoft/20100204/SoapUI.pdf

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐