一、   建立测试用例

(一)   基本概念

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工具介绍的更多相关文章

  1. soapUI参数中文乱码问题解决方法&soap UI工具进行web接口测试

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  2. python接口自动化(四)--接口测试工具介绍(详解)

    简介 “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识.那么接下来让我们看看接口测试的工具有哪些. 目前,市场上有很多支持接口测试的工具.利用工具进行接口测试,能够提供 ...

  3. <自动化测试方案_6>第六章、API自动化测试

    第六章.API自动化测试 (一)工具实现 目前大众接口测试的工具有:Postman.SoupUI.jmeter他们的特点介绍有人做个宏观的研究,这里进行引用:https://blog.csdn.net ...

  4. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  5. 【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho

    四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho 1 BI系统的简述 从技术角度来说 BI 包含了 ETL.DW.OLAP.DM等多环节.简单的说就是把交易系统 ...

  6. web前端自动化测试/爬虫利器puppeteer介绍

    web前端自动化测试/爬虫利器puppeteer介绍 Intro Chrome59(linux.macos). Chrome60(windows)之后,Chrome自带headless(无界面)模式很 ...

  7. <API自动化测试>Centos-Newman

    一.介绍: 在测试和开发中,有一款API测试工具一直占据着武林盟主的地位,那就是声名远播的Google公司的Postman. Postman原先是Chrome浏览器的一个插件,后面发展成了一个应用程序 ...

  8. HTTP API 自动化测试从手工测试到平台的演变

    不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互.在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及 ...

  9. 接口测试及接口Jmeter工具介绍

    一.接口类型及数据传递的格式 接口类型: 1.HTTP接口:通过GET或POST来获取数据,在数据处理上效率比较高 2.WebServer接口:通过SOAP协议来获取数据,比起http来说处理更加复杂 ...

随机推荐

  1. 用css实现文本不换行切超出限制时显示省略号(小tips)

    div{ max-width: 500px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;/*文本不换行*/ } 如上 ...

  2. web前端整套面试题(二)--今日头条面试题

    12道单选,7道不定项选择,2道编程题 一.单选(12题) 1.[单选题]在HTML中,( )可以在网页上通过链接直接打开邮件客户端发送邮件. A.<a href=”telnet:ming.zh ...

  3. spring+springmvc+mybatis+redis实现缓存

    先搭建好redis环境 需要的jar如下: jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:330 ...

  4. Ubuntu14.04下opencv卸载与重装

    参考链接:http://askubuntu.com/questions/334158/installing-opencv http://stackoverflow.com/questions/1313 ...

  5. Git自动补全

    一.简介 假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情.为了解决这个问题,你可以启用Git的自动补全功能,完成这项工作仅需要几分钟.   二.操作步骤 1) cd ...

  6. loadrunner12-添加集合点

    1.首先添加集合点之前要插入事务,集合点和事务通常是一起使用的,单独使用集合点,基本上可以说是没有意义的. 2.在开始事务之前 ,插入一个“集合点”,那么在多用户执行时,就可以将用户请求停下来,直到用 ...

  7. code1744 方格染色

    稍微复杂一点的划分dp 设f[i][j][k]为第i行前j个k次粉刷正确的最大值 由于每行循环使用,可以去掉第一维,但每次不要忘了清零(卡了好久) f[j][k]=max{ f[u][j-1] + m ...

  8. JMS学习之理论基础

    本文代码使用ActiveMq5.6 一.什么是JMS JMS(Java Message Service,Java消息服务)是一组Java应用程序接口(Java API),它提供创建.发送.接收.读取消 ...

  9. EF配置文件初始化数据库 codefirst

    . using ConsoleApplication42; using System.Data.Entity; using System.Data.Entity.ModelConfiguration. ...

  10. typeof()和instanceof的用法区别

    typeof() typeof() 是一个一元运算,放在一个运算数之前,运算数可以是任意类型.它返回值是一个字符串,该字符串说明运算数的类型.,typeof一般只能返回如下几个结果:number,bo ...