JMeter之测试WebService接口
- [1 背景](#1 背景)
- [2 目的](#2 目的)
- [3 介绍](#3 介绍)
- [4 具体操作](#4 具体操作)
-
- [4.1 soapUI调用](#4.1 soapUI调用)
- [4.2 JMeter工具调用](#4.2 JMeter工具调用)
-
- [4.3 操作步骤流程](#4.3 操作步骤流程)
- [4.3 重点](#4.3 重点)
1 背景
WebService应用的范围是非常广,任何需要跨平台、跨系统进行数据交换和功能调用的场景都可以用此来实现,在实际的工作中也常常用到此格式的接口,因此将之前的测试步骤进行记录,为了方便后续查看也为了后边同事可以快速开展此风格的测试工作。
2 目的
- 了解WebService的相关基础概念。
- 了解WebServce通过soapUI工具调用步骤。
- 了解WebService接口通过JMeter工具进行调用。
3 介绍
- 什么是WebService。
W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。
简单的说:WebService即Web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。
- WebService三要素
- SOAP (Simple Object Access Protocol) :简易对象访问协议,soap用来描述传递信息的格式。
- WSDL (WebServices Description Language):Web服务描述语言,用来描述WebService、以及如何访问WebService。
- UDDI (Universal Description Discovery and Integration):通用描述、发现及整合,用来管理、分发、查询webService。
WSDL是什么,有什么作用?WSDL文档主要有那几部分组成,分别有什么作用?(WSDL是web service definition language的缩写,即web service的定义(描述)语言。)
- SOAP是什么?
SOAP是simple object access protocal的缩写,即简单对象访问协议。 是基于XML和HTTP的一种通信协议。是webservice所使用的一种传输协议,webservice之所以能够做到跨语言和跨平台,主要是因为XML和HTTP都是独立于语言和平台的。Soap的消息分为请求消息和响应消息,一条SOAP消息就是一个普通的XML文档,包含下列元素:
1、 必需的 Envelope 元素,可把此XML文档标识为一条SOAP消息
2、 可选的 Header 元素,包含头部信息
3、 必需的 Body 元素,包含所有的调用和响应信息
4、 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
- 怎么理解UDDI?
UDDI是Universal Description Discovery and Integration的缩写,即统一描述、发现和整合规范。用来注册和查找服务,把web services收集和存储起来,这样当别人访问这些信息的时候就从UDDI中查找,看有没有这个信息存在。
- SOA和Web service的区别是什么?
SOA是一种软件设计准则,一种实现松耦合,高可复用性和粗粒度的web服务的设计模式。开发者可以选择任意协议实现SOA,例如,HTTP、HTTPS、JMS、SMTP、RMI、IIOP(例如,采用IIOP的EJB)、RPC等。消息可以采用XML或者数据传输对象(Data Transfer Objects,DTOs)。
Web Service是实现SOA的技术之一。也可以不用Web service来实现SOA应用:例如,用一些传统的技术,像Java RMI,EJB,JMS消息等。但是Web service提供的是标准的平台无关的服务,这些服务采用HTTP、XML、SOAP、WSDL和UDDI技术,因此可以带来J2EE和.NET这些异构技术(heterogeneous technologies)之间的互操作性。
4 具体操作
4.1 soapUI调用
soapUI进行webservice进行调用,确定好要访问的方法和地址,如下是一个具体的WebServuce接口的示例,具体如下所示:
( soapUI工具的具体使用在此就不详细讲解 )
4.2 JMeter工具调用
4.3 操作步骤流程
测试计划------>线程组------>新建HTTP请求
维护信地址信息如上图所示的地址信息,请求协议,请求接口、请求路径、请求地址、请求参数。
4.3 重点
在jmeter中body体所传参数,格式如果是xml,必须要用<![CDATA[ ]]>进行包裹,不做这样操作的话,无法进行接口调用。