接口测试之SoapUI实例
Posted 博克软件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试之SoapUI实例相关的知识,希望对你有一定的参考价值。
1. 接口测试的目的与意义
空白
分层测试的概念已经提出来多年了,一般来说分层测试把测试分成了3个层次,从下往上分别是: 单元测试, 接口测试以及UI测试。其中接口测试又称为API(Application Programming Interface)测试, 它作为集成测试的一部分,通过直接调用被测应用的接口(API)来确定接口在功能、可靠性、性能和安全方面是否达到预期。开发一般是前后端分开开发的,当后端单个接口开发完毕后就可以做接口测试了。而且接口在迭代研发过程中和UI相比变化非常少,对测试环境依赖少,维护成本低,与单元测试相比技能要求较低。总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益的驱动作用下的解决方案。
2.怎么做接口测试?
空白
常见Web项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。常用工具有SoapUI,Postman, Jmeter等等。 今天我就介绍一下如何使用SoapUI来做接口测试。
3. 什么是SoapUI?
空白
SoapUI是世界领先的SOAP和REST服务的功能测试工具。使用其易于使用的图形界面和企业级特性,SoapUI允许您轻松且快速地创建和执行自动化功能、回归和负载测试。SoapUI提供完整的测试覆盖范围——从SOAP和基于REST的Web服务、到JMS企业消息层、数据库、丰富的Internet应用程序等等。SoapUI 主要有以下三种类型的项目:
· SOAP project
· REST project
· Generic project
这里主要介绍下如何创建和测试REST project,REST 项目可以从WADL 文件或者直接从URL及其参数创建。你可以使用这些项目来测试REST 服务,创建各种请求并检查所接收的信息等等。
4. 使用SoapUI 创建REST 项目
1. 点击REST 弹出新增REST 项目窗口
2. 点击Import WADL 选择WADL文件
SoapUI 在左侧的导航面板中显示具体的web服务,这里你可以看到REST 项目的相关信息如下:
· 项目名称
· REST服务
· 资源节点
· 方法定义
SoapUI 方法生成的默认请求
双击资源节点可以打开服务编辑器。Overview 标签显示服务的基本信息。
点击WADL Content 标签,左边是WEB服务的树状结构,右边可以查看你选择的resource 或者Method的定义
5. SoapUI测试用例管理
SoapUI结构功能测试分为三个层次:TestSuite, TestCase和Test Step 。
TestSuite:可以在SoapUI项目按场景划分测试集或者按功能划分,以支持大量测试场景。
TestCase:是一系列测试步骤的集合。
Test Step: 测试步骤被添加到一个测试用例中,用于控制执行流程并验证要测试的服务的功能
单击添加到测试用例后,为 TestSuite,TestCase,Test Step指定一个名称,创建完成的测试用例如下图所示,TestSuite。
6. 属性传递
属性的传递这里简单介绍了token的获取与传递
在TestSuite级别添加属性sessionID
添加测试步骤Groovy Script保存Token 的值到属性sessionID
7. 在Test Step中添加断言来验证响应的内容
断言用于在执行期间验证Test Step接收的消息,通常将消息的部分或者整个消息与某些预期值进行比较。任何数量的断言都可以添加到采样器Test Step中,每个断言都会验证响应内容的一些不同方面。在采样器Test Step执行后,其所有断言将应用于接收到的响应,如果任何一个断言Test Step在TestCase视图中被标记为失败,那么相应的FAILED条目会显示在测试执行日志中。
双击TS01_Login Test Step 打开相应的Request 编辑器如下图:
在添加断言对话框中我们可以看到如下图所示的几种断言类别。
这里介绍一下常见的Test Step断言:
Property Content:
Contains - 该断言检查接收到的响应或请求消息中是否存在某些文本。
Not Contains - 不包含 - 检查在断言的消息中不存在指定的内容。
XPath Match - 使用XPath表达式从目标属性中选择内容,并将结果与期望值进行比较。适用于包含XML的任何属性。
XQuery Math - 使用XQuery表达式从目标属性中选择内容,并将结果与期望值进行比较。适用于包含XML的任何属性。
Script:
Script Assertion - 运行自定义脚本来执行任意验证。
SLA:
Response SLA - 验证最后收到的响应时间是否在定义的限制内。
8. 测试执行
通过双击打开TestSuite概要信息窗进行执行,TestSuite中会显示所有的TestCase,执行的时候会根据配置,按照顺序或者并行执行所有的TestCase。TestCase中所有的Test Steps的执行顺序始终按照显示的顺序进行,可以通过脚本来实现分支/循环。
9.测试报告
测试执行结束后项目里的测试人员会提供如下模板的报告,报告中Result标记测试执行的结果,Problem简单描述失败的原因,Actual Result 具体的错误结果(详细的错误信息会记录在一个系统中,这里只填写系统里对应的编号)。
10.总结
当后端单个接口的开发完成时,我们就可以对其进行测试了,这时能够尽早的发现重要问题。然后根据业务逻辑将多个接口组合测试,确保在跟前端集成进行UI测试前,后端的问题都已经解决了。目前项目里只用到了SoapUI的部分功能,SoapUI能满足本项目中的所有接口的测试请求,它提供了便利的 GUI 界面帮助用户对 REST 服务进行快速的测试。也提供了可编程能力例如变量,Groovy 脚本等, 可以让用户应对一些复杂的情况。
如需转载,请注明出处
以上是关于接口测试之SoapUI实例的主要内容,如果未能解决你的问题,请参考以下文章