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来说处理更加复杂 ...
随机推荐
- Miller-Rabin算法
Miller-Rabin算法用于检测一个数n是否是素数.其时间复杂度上界为O(klog2(n)),其中k为检测的轮数.增大k可以提高Miller-Rabin算法的准确度. 要检测一个数是否为素数,简单 ...
- VUE+WebPack游戏开发:神庙逃亡的游戏设计
- selenium+python—实现基本自动化测试
安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium I ...
- CentOS 7 升级内核 Kernel
安装kernel 首先安装elrepo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.e ...
- hdu 4068 I-number
#include<stdio.h> #include<string.h> ]; int al; int mysum() //求各位和 { ; al=strlen(a); ; i ...
- getparameter()和getattribution()的区别的 java详细
两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getAttribut ...
- 黑盒测试实践-任务进度-Day04
任务进度11-29 使用工具 selenium 小组成员 华同学.郭同学.穆同学.沈同学.覃同学.刘同学 任务进度 经过了前两天的学习任务的安排,以下是大家的任务进度: 华同学(任务1) 1.和其他小 ...
- mybatis 配置延迟加载 和 缓存
<!-- MyBatis延迟加载时,创建代理类 --> <dependency> <groupId>cglib</groupId> <artifa ...
- 删除emacs临时文件
emacs编辑文件后产生的带小尾巴(~)的文件,你有没有强迫症,要删之而后快rm -rf *~ 你有没有不小心敲成了rm -rf ~,然后爽快的按下了回车,然后欲哭无泪,哈哈- 其实,可以设置在ema ...
- 流程控制语句(if、for、while、do while、switch、 break、continue)
3:流程控制语句 (1)顺序结构 从上往下,依次执行 (2)选择结构 按照不同的选择,执行不同的代码 (3)循环结构 做一些重复的代码 4:if语句 (1)三种格式 ...