SoapUI接口测试工具最全实用教程(实战篇)

SoapUI接口测试工具最全实用教程(实战篇)

温馨提醒:本文加上理论篇超过10000+字,适用测试工程师入门Soapui工具进行接口测试,建议收藏慢慢看~~

前文中已经给大家介绍了SoapUI进行接口测试的理论部分内容,在本文,Allen老师将从SoapUI功能的主要功能模块方面展开讲解,希望能够给正在学习接口测试的同学,提供一些学习便利,快速掌握使用SoapUI进行各种类型接口测试的方法。

SoapUI接口测试理论部分内容,请参考文章:

一、使用SoapUI实现REST请求

REST 代表具象状态转移。它是一种依赖于无状态通信协议(最常见的是 HTTP)的软件架构风格。REST 以 XML、YAML 或任何其他机器可读格式构建数据,但通常使用最广泛的还是 JSON。

REST 遵循 名词-动词 的面向对象编程范式。

REST HTTP 请求包括:POST、GET、PUT 和 DELETE,也支持 HEAD、OPTIONS、TRACE、PATCH、PROPFIND、LOCK、UNLO​​CK、COPY 和 PURGE 请求。

官方使用视频 https://www.zhihu.com/video/1511452292734169088

1、案例介绍

我们选用swagger提供的petstore项目进行演示,该项目是一个标准的RESTful风格的接口实例,我们可以使用其提供的对宠物的增删改查的接口。

https://petstore.swagger.io/#/
  • 向 /pet/{petId} 发送 GET 请求将从数据库中检索具有指定 ID 的宠物。
  • 向 /pet/{petId}/uploadImage 发送 POST 请求将添加宠物的新图像。
  • 向 /pet/{petId} 发送 DELETE 请求将删除指定的宠物。标识的现有宠物的属性。
  • 向 /pet/{petId} 发送 DELETE 请求将删除指定的宠物。

2、创建REST项目下的请求

启动SoapUI5.5.0,点击File菜单,选New REST Project,创建一个rest工程。

1)项目下添加一个petstore查询接口请求-get

在对话框中,在 URI 编辑框中指定 REST API 的 URI 路径,我们以petstore查询接口为例,点击确定。

https://petstore.swagger.io/v2/pet/findByStatus?status=available
# status参数可以为:available, pending, sold

创建的一个项目包括:站点(endpoint)、资源(source)、请求方法(method)和实际请求参数(parameters)。

点击运行按钮,运行该查询接口(get),查看输出的json响应结果:

2)项目下添加一个petstore更新接口请求-put

选择站点所在的层级,右键选择”New Resource“,新建资源。

弹出框中添加petstore的更新信息地址(put请求): petstore.swagger.io/v2/

查看petstore的更新接口的具体信息如下(见接口文档):

请求地址:https://petstore.swagger.io/v2/pet/
请求方式为:put
请求数据类型:application/json
请求数据为:
  "id": 1212,
  "category": {
    "id": 0,
    "name": "string"
  "name": "doggie",
  "photoUrls": [
    "string"
  "tags": [
      "id": 0,
      "name": "string"
  "status": "available"
}

在soapui中设置如下图(可以成功更新pet的id为1212):

3)项目下添加一个petstore增加接口请求-post

增加资源的方式见上一节的内容,选择站点所在的层级,右键选择”New Resource“,新建资源即可。

资源添加的URI地址为: petstore.swagger.io/v2/

查看petstore的增加接口的具体信息如下(见接口文档):

请求地址:https://petstore.swagger.io/v2/pet/
请求方式为:post
请求数据类型:application/json
请求数据为:
  "id": 2222,
  "category": {
    "id": 0,
    "name": "string"
  "name": "doggie",
  "photoUrls": [
    "string"
  "tags": [
      "id": 0,
      "name": "string"