API自动化测试 Soap UI工具介绍
一、 建立测试用例
(一) 基本概念
soapUI 中工程的层次结构
- 项目名称:位于最上层
(BookStoreTest),项目可以包含多个服务的定义。 - REST 服务定义:服务其实是对多个 REST
资源的一个分组,在我们的例子中只有一个服务 BookStoreServie - REST 资源定义:具体描述该资源的名称,URI, 参数等属性
- REST 方法定义:针对每个资源的方法
(GET,POST,PUT,DELETE 等 ),图
1 中的方法名就是 GetBookList - REST 操作请求定义:基于每个方法,可以有一个或多个请求操作,如 GetBookListRequest,这些请求操作才是真正被
soapUI 所调用执行的。每个请求可以设置非常丰富的信息,例如 Accept 类型,请求的 Header 信息,运行了该请求以后,就能以各种方式查看运行结果。但是这里还不能加入断言来验证结果
- 必须在建立测试用例以后才能使用。 
TestCase 定义
- TestSuite:类似于 Junit 中的测试套件,其中可以加入多个 TestCase
- TestCase:可以包含多个 TestStep
- TestStep:一个 TestCase 可以包含多个 TestStep,TestStep 有多种类型,它可以是上面提到一个
REST 操作请求,也可以是一个 Groovy 的脚本,还可以试一个设置属性的操作。
TestStep 甚至支持分支跳转操作:根据特定的条件,从一个 step 可以跳转到其他 step, 而不必顺序执行。 
(二)
创建REST 服务
1. 新建一个名为 RESTTest 的项目
2. 在项目上点击右键,选择"New
Rest Service",在对话框中输入 Service Name(AuthenticationService)
和Endpoint(http://qa-server11.achievo.com:33080)
3. 在" AuthenticationService
"上点击右键,选择“New Resource”, 在对话框中输入 Resource Name(Auth) 和
Resource Path (/apis/v1/auth/agency),点击 OK
4. 在弹出的对话框中输入 Method Name:
signon4AgencyUser,HTTP Method 选择默认的 POST, 点击 OK
5. 在“signon4AgencyUser”上点击右键,选择“New
Request”,在对话框中输入“Request login success”
创建一个 REST 服务
(三)
创建测试用例
主要有两种方式:
- 自动生成,步骤如下:
(1). 右键点击一个 REST 服务,例如本例中的"AuthenticationService",
选择"Generate TestSuite"
(2). 在弹出的对话框中,保持默认设置, 选择"OK"
(3). 输入名称 , 例如"AuthenticationService
TestSuite", 选择"OK"即可。 - 手工创建,步骤如下:
(1). 在项目"RESTTest"上点击右键,选择“New
TestSuite”, 在对话框中输入"AuthenticationService
TestSuite"
(2). 在 AuthenticationService TestSuite 上点击右键, 选择"New TestCase", 在对话框中输入"login
TestCase"
(3). 然后在左边的导航栏中展开 login TestCase, 在“Test Steps”上点右键,选择 Add
Step->Rest Test Request
(4). 在弹出的对话框中选择 “Request login success”
(四)
添加断言
测试用例建好之后,需要向测试用例中添加
Assertions 以便验证结果的正确性。soapUI 支持
Response SLA, Script Assertion, Contains, XQuery Match, Schema Compliance,
XPath Match 以及 Not Contains 等多种断言来对
response 进行判断来保证对 Web 服务高质量的测试。
点击 TestCase 的添加 Assertions 按钮。 在弹出的 Select
Assertion 窗口中选择 XPath Match 断言,点击
OK。配置 XPath 如下图所示:



(五)
运行测试用例

二、
性能测试
性能测试在 soapUI 中称为 Load Test, 针对一个 soapUI 的 TestCase, 可以建立一个或多个 LoadTest, 这些 LoadTest 会自动的 把 TestCase 中的所有步骤都添加到其中, 在运行的时候,soapUI 会自动的使用多个线程来运行这些
TestStep,同时也会监控 它们的运行时间, 例如最短时间,最长时间,平均时间等等。这样用户能够很直观的看到
REST 服务的响应时间,从而对性能进行调优。
建立 LoadTest 非常简单,只需要在“Load Tests”上点击右键, 选择"New
LoadTest", 然后输入名称即可,下图是一个针对 GetBookList 的 性能测试, 可以看到有两个 TestStep : "GetBookList_xml" 和"GetBookList_json" , 100 个线程并发执行,
时间限制是 60 秒。 最后的结果是,最短时间 4 毫秒,最长时间
1204 毫秒,平均时间 20.54 毫秒。

API自动化测试 Soap UI工具介绍的更多相关文章
- soapUI参数中文乱码问题解决方法&soap UI工具进行web接口测试
soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...
- python接口自动化(四)--接口测试工具介绍(详解)
简介 “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进行接口测试,能够提供 ...
- <自动化测试方案_6>第六章、API自动化测试
第六章.API自动化测试 (一)工具实现 目前大众接口测试的工具有:Postman.SoupUI.jmeter他们的特点介绍有人做个宏观的研究,这里进行引用:https://blog.csdn.net ...
- python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍
1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...
- 【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho
四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho 1 BI系统的简述 从技术角度来说 BI 包含了 ETL.DW.OLAP.DM等多环节.简单的说就是把交易系统 ...
- web前端自动化测试/爬虫利器puppeteer介绍
web前端自动化测试/爬虫利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很 ...
- <API自动化测试>Centos-Newman
一.介绍: 在测试和开发中,有一款API测试工具一直占据着武林盟主的地位,那就是声名远播的Google公司的Postman. Postman原先是Chrome浏览器的一个插件,后面发展成了一个应用程序 ...
- HTTP API 自动化测试从手工测试到平台的演变
不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...
- 接口测试及接口Jmeter工具介绍
一.接口类型及数据传递的格式 接口类型: 1.HTTP接口:通过GET或POST来获取数据,在数据处理上效率比较高 2.WebServer接口:通过SOAP协议来获取数据,比起http来说处理更加复杂 ...
随机推荐
- Lamber算法 & SurfaceShader自定义光照
[SurfaceShader自定义光照] 1.在pragma中添加自定义光照函数名: #pragma surface surf BasicDiffuse 2.实现自定义光照函数.下面就是Lamber ...
- 【HDU2825】Wireless Password【AC自动机,状态压缩DP】
题意 题目给出m(m<=10)个单词,每个单词的长度不超过10且仅由小写字母组成,给出一个正整数n(n<=25)和正整数k,问有多少方法可以组成长度为n的文本且最少包含k个给出的单词. 分 ...
- ConcurrentHashMap的实现原理与使用
一.适应ConcurrentHashMap的原因 HashMap存在线程不安全的问题,HashTable效率十分低下,因此,ConcurrentHashMap有了合适的登场机会. (1)HashTab ...
- spring源码学习——spring整体架构和设计理念
Spring是在Rod Johnson的<Expert One-On-One J2EE Development and Design >的基础上衍生而来的.主要目的是通过使用基本的java ...
- Openssl enc命令
一.简介 enc - 对称加密例程,使用对称密钥对数据进行加解密,特点是速度快,能对大量数据进行处理.算法有流算法和分组加密算法,流算法是逐字节加,由于其容易被破译,现在已很少使用:分组加密算法是将数 ...
- 阿里云WindowsServer2012安装IIS失败
本文地址:http://www.cnblogs.com/drfxiaoliuzi/p/6388417.html 首先,向微软官方论坛的大神致敬: https://social.technet.micr ...
- 清北学堂 day6 花
1.花( flower.cpp/c/pas)[ 问题描述]商店里出售 n 种不同品种的花.为了装饰桌面,你打算买 m 支花回家.你觉得放两支一样的花很难看,因此每种品种的花最多买 1 支.求总共有几种 ...
- SceneBuilder 打不开 .fxml文件,只在任务栏显示
mark一下,今天下载官网的SceneBuilder 2.X 最近在使用JavaFX,感觉还是很酷的,可是在正常的编辑关闭SceneBuilder 之后,再次打开却打不开了 可是奇怪的是有些 .fxm ...
- Perl 学习笔记-正则表达式基础篇
1.Perl中的正则表达式 在Perl中叫做模式, 是一个匹配(或不匹配)某字符串的模板, 是一种小程序, 对于一个字符串, 要么匹配, 要么不匹配. 使用简易模式: 将模式写在一对正斜线(/)中即可 ...
- list<?>转换成 对应的 class
项目中用到的,list转换成bean.因为查询出来的数据用list 泛型接收,要返回 实体对象.所以需要对应转换. 主要用到的技术:反射. 上代码: public static <T> L ...