SoapUI WebService 接口测试

文章目录

    • 一、SoapUI
    • 二、SoapUI测试REST类型接口
      • 1. REST 协议类型的测试
      • 2. POST接口测试
        • (1) 简单的某个接口测试
        • (2) 组织多条用例测试
      • 3. GET接口测试
    • 三、SoapUI测试SOAP类型接口
      • 1. SOAP 协议类型的测试
      • 2. 测试外部系统接口的文档
      • 3. 测试业务
      • 4. SOAP请求与响应源码
      • 5. 同理可测试其他Web服务接口
    • 四、博主原创手动码字,喜欢记得收藏点赞

一、SoapUI

先引用 SoapUI 官网一段官方介绍作为开篇

无论是开源的还是商业的,SoapUI 测试工具都可以轻松地在 REST,SOAP 和 GraphQL API,JMS,JDBC和其他Web服务上创建,管理并执行端到端测试,所以您可以比以往更快地交付软件。

image-20200905184251765

当然官网中提到的一些高级功能,如GraphQL API 测试只限 Pro 版, 开源版下载可前往 SoapUI官网,安装很简单并无特殊设置。由 SoapUI 的特性可知,REST 和 SOAP 协议类型的接口测试都是支持的,当然它尤其擅长 SOAP 类型,所以笔者我重点详细地介绍下这两种协议类型的接口测试过程。

二、SoapUI测试REST类型接口

1. REST 协议类型的测试

REST:Representational State Transfer,能完全通过 HTTP 协议实现的轻量级Web Service架构。

  • 新建 REST 工程

SoapUI WebService 接口测试_第1张图片

  • 输入URI,也就是服务器地址端口

SoapUI WebService 接口测试_第2张图片

  • Request 接口请求中,配置接口相关信息:

    接口请求方法(GET/POST/…),接口请求的服务器地址( http://ip:port ),接口路径,接口请求参数。

    SoapUI WebService 接口测试_第3张图片

2. POST接口测试

(1) 简单的某个接口测试

禅道登录接口:

接口文档四要素
接口请求方法 post-XML
接口请求地址 http://118.25.179.224:1180/zentao/user-login.html
接口请求参数 account:test001 password:123456
预期结果 包含跳转的页面

依据《接口文档》在 Request 窗口中依次输入:

配置项 配置值
Method POST
Endpoint http://118.25.179.224:1180
Resource /zentao/user-login.html
Parameters ?account=test001&password=123456

运行后,得到响应代码。可以增加断言,来测试所响应的代码是否包含或符合预期结果。

SoapUI WebService 接口测试_第4张图片

(2) 组织多条用例测试

工程的树状结构为:

REST Project - URI
	    	 - TestSuite - TestCase - TestStep - REST Request
	    	 - 测试套件 - 测试用例 - 测试步骤 - REST请求

REST 工程 中新建测试套件 TestSuite

SoapUI WebService 接口测试_第5张图片

TestSuite 中新建 TestCase 测试用例

SoapUI WebService 接口测试_第6张图片

TestCase 下自带 TestSteps 测试步骤, 选择 Add Step 里的 REST Request 新建 REST 请求

SoapUI WebService 接口测试_第7张图片

选择 REST 方法

SoapUI WebService 接口测试_第8张图片

同理,TestSuite 中可创建多个 TestCase,进而每个 TestCase 创建多个 TestSteps

SoapUI WebService 接口测试_第9张图片

Request 配置中的 Assertions + 号增加断言

SoapUI WebService 接口测试_第10张图片

输入 Contains Assertion 包含型断言的 Content 内容

SoapUI WebService 接口测试_第11张图片

此外,还有不包含断言,Xpath Match 断言等

SoapUI WebService 接口测试_第12张图片

通过 TestSuite 批量执行其中的全部测试用例

SoapUI WebService 接口测试_第13张图片

也可以使用 TestRunner 测试运行器批量执行

SoapUI WebService 接口测试_第14张图片

SoapUI WebService 接口测试_第15张图片

3. GET接口测试

测试网易云音乐镜像

http://118.25.179.224:3001/search?keywords=青花瓷

接口文档四要素
接口请求方法 GET
接口请求地址 http://118.25.179.224:3001/search
接口请求参数 keywords=青花瓷
预期结果 包含跳转的页面

注:get 请求参数会对中文进行URL编码,所以使用URL编码解码工具 即可

  • REST 工程中增加新的 URI (通过 URI 新建 REST 服务)

SoapUI WebService 接口测试_第16张图片

  • 输入 URI 服务器地址接口

SoapUI WebService 接口测试_第17张图片

  • 设置好 Request 请求配置项后运行,得到 JSON 格式的响应数据。可以看到响应内容包含预期结果“青花瓷”。

SoapUI WebService 接口测试_第18张图片

  • 在 TestSuite 1中增加 MyCloudMusicTest 测试用例,并且 Add Step 添加测试步骤

SoapUI WebService 接口测试_第19张图片

  • 选择对应的测试接口,去测试接口功能是否正确

SoapUI WebService 接口测试_第20张图片

三、SoapUI测试SOAP类型接口

1. SOAP 协议类型的测试

SOAP(Simple Object Access Protocol)可简单理解为:RPC+HTTP+XML。
HTTP作为通信协议,RPC 作为调用途径协议,XML作为数据传输格式,允许服务提供者和客户进行通信交互。
如果要开展SOAP协议接口测试,必须拿到接口文档,WSDL文档,WSDL包含了多个接口。每个向服务器调用的方法,都是要向服务器发去请求,每个请求的方法都是对外提供的接口。

2. 测试外部系统接口的文档

测试外部系统接口:以webxml官网所提供的外部天气接口的测试为例。

以下是天气接口wsdl文档一般用于机器识别导入

SoapUI WebService 接口测试_第21张图片

以下是天气接口asmx文档一般用于测试工程师阅读

SoapUI WebService 接口测试_第22张图片

3. 测试业务

测试天气接口,获取浙江省杭州市的天气(p.s.明天要去西湖玩咯)

  • 新建一个 SOAP项目,并输入 WSDL 文档的路径,从而生成项目导入接口方法。
    SoapUI WebService 接口测试_第23张图片

  • 然后看到接口文档中的方法与SoapUI导入的逐一对应。再阅读 asmx 接口文档,熟悉每个接口功能,以便下一步测试开展。

SoapUI WebService 接口测试_第24张图片

  • 新建 TestSuite (测试套件) – TestCase (测试用例) – Test Steps (测试步骤),在 TestSteps 右键菜单中 – Add Step (添加测试步骤) – SOAP Request (新建SOAP类型请求)

SoapUI WebService 接口测试_第25张图片

  • 在出现的 TestRequest 测试请求中,选择对应要测试的接口,如 getWeather

SoapUI WebService 接口测试_第26张图片

  • 为方便使用可自定义用例或测试请求的名称。当紧接着上一步后,打开 getWeather 这个 Soap 请求,直接运行会返回 “服务器无法处理请求”,原因是这是付费接口。当然,只需要在webxml官网注册免费得到 UserID,作为学习可免费试用,若是商用可以支持购买。

SoapUI WebService 接口测试_第27张图片

需要明确的是,上图的 TestCase -> TestSteps —>(getWeather)Request,必须和下图的 WeatherWSSoap —> getWeather —> Request两个 Request 的请求参数 theCityCode,theUserID 保持一致,才能被服务器正常处理请求从而访问。

所以不难理解,之后要把上图的(getWeather)Request单标签改为双标签,并填写所需参数。

SoapUI WebService 接口测试_第28张图片

  • theCityCode 的获取

    • 先通过 getRegionProvince 获得中国省市区的id编码,比如浙江为31119。

    SoapUI WebService 接口测试_第29张图片

    • 再通过 getSupportCityDataset 获得某省市区如“浙江省”的城市id编码,比如杭州为2057,即 getWeather 请求中必须包含的参数 theCityCode

      SoapUI WebService 接口测试_第30张图片

    • 最后才通过 getWeather 获得某城市的天气,比如杭州2057的天气。

  • theUserID 的获取

    • 注册

    SoapUI WebService 接口测试_第31张图片

    • 会员专区,获取到 Web 服务的用户 ID,即 getWeather 请求中必须包含的参数 theUserID

    SoapUI WebService 接口测试_第32张图片

    点"如何使用"可看到官网介绍:

    WEB服务用户ID使用说明

    用户ID由32位的英文字母和数字组成。

可以在WEB服务上的方法的 UserID 参数中输入,如果没有输入 UserID 参数输入选项就使用以下方法:

参数+英文冒号+用户ID

如中国股票信息WEB服务上证指数输入:sh000001:xxxxxxxxxxx

  • 最后进入 “我的Web服务” 选择试用,即可获得自己的测试次数。

    SoapUI WebService 接口测试_第33张图片

  • TestCase -> TestSteps —>(getWeather)Request 输入获取到的 theCityCode:2057,theUserID:xxxxx

  • 执行测试获取天气 getWeatherSoap 协议接口请求,接口会返回杭州市当日的天气状况。

  • 最后,可在 Assertions 中添加 Contains Aseertion 等断言,测试接口返回值的正确性。

    SoapUI WebService 接口测试_第34张图片

4. SOAP请求与响应源码

附上 Request 源码

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://WebXml.com.cn/">
   <soapenv:Header/>
   <soapenv:Body>

  <web:getWeather>
     
     <web:theCityCode>2057web:theCityCode>
     
     <web:theUserID>xxxxxxxxxxxxxxxxweb:theUserID>
  web:getWeather>

   soapenv:Body>

附上 Response 源码

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <getWeatherResponse xmlns="http://WebXml.com.cn/">
         <getWeatherResult>
            <string>浙江 杭州string>
            <string>杭州string>
            <string>2057string>
            <string>2020/09/02 00:50:31string>
            <string>今日天气实况:气温:25℃;风向/风力:北风 1级;湿度:90%string>
            <string>紫外线强度:中等。string>

5. 同理可测试其他Web服务接口

webxml官网的Web服务十分丰富,有兴趣可以试用其他接口服务进行测试,若商用请支持选择正版。

SoapUI WebService 接口测试_第35张图片

以下是电视节目预告的测试,接口测试分析过程与上面同理,不再赘述。

SoapUI WebService 接口测试_第36张图片

四、博主原创手动码字,喜欢记得收藏点赞

博主(CSDN@崔同学)唯一首发CSDN,原创手动码字,感谢阅读到这里,喜欢记得收藏点赞哦 ღ( ´・ᴗ・` )

你可能感兴趣的:(接口测试,软件测试,Web协议,soap,rest,web,service,接口,软件测试)