先引用 SoapUI 官网一段官方介绍作为开篇
无论是开源的还是商业的,SoapUI 测试工具都可以轻松地在 REST,SOAP 和 GraphQL API,JMS,JDBC和其他Web服务上创建,管理并执行端到端测试,所以您可以比以往更快地交付软件。
当然官网中提到的一些高级功能,如GraphQL API 测试只限 Pro 版, 开源版下载可前往 SoapUI官网,安装很简单并无特殊设置。由 SoapUI 的特性可知,REST 和 SOAP 协议类型的接口测试都是支持的,当然它尤其擅长 SOAP 类型,所以笔者我重点详细地介绍下这两种协议类型的接口测试过程。
REST:Representational State Transfer,能完全通过 HTTP 协议实现的轻量级Web Service架构。
禅道登录接口:
接口文档四要素 | 值 |
---|---|
接口请求方法 | 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 |
运行后,得到响应代码。可以增加断言,来测试所响应的代码是否包含或符合预期结果。
工程的树状结构为:
REST Project - URI
- TestSuite - TestCase - TestStep - REST Request
- 测试套件 - 测试用例 - 测试步骤 - REST请求
REST 工程
中新建测试套件 TestSuite
TestSuite
中新建 TestCase
测试用例
TestCase
下自带 TestSteps
测试步骤, 选择 Add Step
里的 REST Request
新建 REST 请求
选择 REST 方法
同理,TestSuite
中可创建多个 TestCase
,进而每个 TestCase 创建多个 TestSteps
Request
配置中的 Assertions
+ 号增加断言
输入 Contains Assertion
包含型断言的 Content 内容
此外,还有不包含断言,Xpath Match 断言等
通过 TestSuite
批量执行其中的全部测试用例
也可以使用 TestRunner
测试运行器批量执行
测试网易云音乐镜像
http://118.25.179.224:3001/search?keywords=青花瓷
接口文档四要素 | 值 |
---|---|
接口请求方法 | GET |
接口请求地址 | http://118.25.179.224:3001/search |
接口请求参数 | keywords=青花瓷 |
预期结果 | 包含跳转的页面 |
注:get 请求参数会对中文进行URL编码,所以使用URL编码解码工具 即可
SOAP(Simple Object Access Protocol)可简单理解为:RPC+HTTP+XML。
HTTP作为通信协议,RPC 作为调用途径协议,XML作为数据传输格式,允许服务提供者和客户进行通信交互。
如果要开展SOAP协议接口测试,必须拿到接口文档,WSDL文档,WSDL包含了多个接口。每个向服务器调用的方法,都是要向服务器发去请求,每个请求的方法都是对外提供的接口。
测试外部系统接口:以webxml官网所提供的外部天气接口的测试为例。
以下是天气接口wsdl文档一般用于机器识别导入
以下是天气接口asmx文档一般用于测试工程师阅读
测试天气接口,获取浙江省杭州市的天气(p.s.明天要去西湖玩咯)
然后看到接口文档中的方法与SoapUI导入的逐一对应。再阅读 asmx 接口文档,熟悉每个接口功能,以便下一步测试开展。
需要明确的是,上图的 TestCase -> TestSteps —>(getWeather)Request
,必须和下图的 WeatherWSSoap —> getWeather —> Request
中两个 Request 的请求参数 theCityCode,theUserID
保持一致,才能被服务器正常处理请求从而访问。
所以不难理解,之后要把上图的(getWeather)Request
的
单标签改为双标签,并填写所需参数。
theCityCode
的获取
getRegionProvince
获得中国省市区的id编码,比如浙江为31119。theUserID
的获取
getWeather
请求中必须包含的参数 theUserID
点"如何使用"可看到官网介绍:
WEB服务用户ID使用说明
用户ID由32位的英文字母和数字组成。
可以在WEB服务上的方法的 UserID 参数中输入,如果没有输入 UserID 参数输入选项就使用以下方法:
参数+英文冒号+用户ID
如中国股票信息WEB服务上证指数输入:sh000001:xxxxxxxxxxx
最后进入 “我的Web服务” 选择试用,即可获得自己的测试次数。
TestCase -> TestSteps —>(getWeather)Request
输入获取到的 theCityCode:2057,theUserID:xxxxx
执行 “测试获取天气 getWeather
” Soap 协议接口请求,接口会返回杭州市当日的天气状况。
最后,可在 Assertions 中添加 Contains Aseertion 等断言,测试接口返回值的正确性。
附上 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>
webxml官网的Web服务十分丰富,有兴趣可以试用其他接口服务进行测试,若商用请支持选择正版。
以下是电视节目预告的测试,接口测试分析过程与上面同理,不再赘述。
博主(CSDN@崔同学)唯一首发CSDN,原创手动码字,感谢阅读到这里,喜欢记得收藏点赞哦 ღ( ´・ᴗ・` )