Web Service 接口测试,webservice接口测试方法
本文讲述了Web Service 接口测试,webservice接口测试方法。
Web Service 接口测试
Web service 概念
Web service使用与平台和编程语言无关的方式进行通讯的一项技术, web service 是一个接口, 他描述了一组可以在网络上通过标准的XML消息传递访问的操作,它基于xml语言协议来描述要执行的操作或者要与另外一个web 服务交换数据, 一组以web服务在面向服务体系结构中定义的web应用程序.
可以简单的理解为web service是一个SOA(面向服务的编程)架构, 它不依赖于语言, 也不依赖于平台, 可以实现不同语言之间的通讯和相互调用.SOAP(简单对象访问协议) 是xml web service的通讯协议. 当用户通过UDDI找到WSDL(Web Service Description Language)文档后,通过SOAP调用建立的web service的一个或者多个操作.SOAP是xml文档形式的调用方法规范, 可以支持不同的底层接口.
Web service 接口准备 如果有现成的webService请忽略这步
使用Eclipse或者Intellij等IDE工具,使用java语言实现一个简单的web服务.
1.在Intellij中File->New->Project中选择使用Maven来创建项目,输入项目名称即可创建项目,我们使用WebService来命名项目,项目创建完成后在其目录中会有一个文件pom.xml,会自动加入如下配置文件:
<groupId>webService</groupId>
<artifactId>webService</artifactId>
<version>1.0-SNAPSHOT</version>
2.在java目录下新建一个java class, 定义为一个webService 接口,只有方法,没有具体实现.
import javax.jws.WebMethod; @javax.jws.WebService public interface WebService { @WebMethod String sayHello(String name); }
3.再同目录下新建一个java class, 用来实现定义的webService接口, 并重载接口中定义方法.
@javax.jws.WebService public class WebServiceImple implements WebService { public String sayHello(String name){ System.out.println("请求成功了"); String a= name+"Hello world 你很厉害, 恭喜你!"; return a; }
4.再新建一个java class, 用来启动发布我们的webService应用
import javax.xml.ws.Endpoint; public class WebServicePublish { public static void main(String[] args) { String address="http://localhost:8989/WS_Server/Webservice"; Endpoint.publish(address,new WebServiceImple()); System.out.println("服务端发布成功了!"); } }
5. 发布应用
右键选择执行即可发布应用程序.
如果正常即可在控制台上看到下列信息:
/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 服务端发布成功了!
恭喜你发布成功了,接下来用浏览器直接访问
看到一堆xml说明webService可以正常访问了.
Web service 接口测试
webService支持相对有好的工具SoapUI, 它是针对soap协议而生, 我们打开SoapUI应用.
在SoapUI 的工具栏中我们选择soap->Create a New Soap Project, 在弹框中我们输入Project name 和WSDL Link
Project Name:推荐名字根据项目名称取
Initial WSDL:被测的wsdl link
Create Requests: 默认选中
Create TestSuite: 测试套件可以这里勾选创建,也可以后续自行创建.
点击OK 即可.
SoapUI根据link自动导入所有接口信息
可以看到SayHello使我们在Intellij中实现的接口方法.
我们在SoapUI的请求中, 在参数里输入相关信息,验证接口
查验接口request和Response
同时查看Intellij IDE是否有报错信息, 控制台显示请求成功
从Response中可以判断我们的返回和IDE中定义的是相符的.
增加TestSuite
增加TestSuite和TestCase的意义在于soap 接口测试为后续自动化测试提供基础脚本和回归验证.
在webServiceTest右键New TestSuite
新建一个TestCase, 在Suite 右键New TestCase
最后一步将接口添加到TestCase, 右键接口SayHello选择Add to TestCase, 然后选择要添加Suite和TestCase,即可将接口添加进入Step中
这样SayHello 接口就被添加到testCase中了,还是非常方便的., 这时候可以给接口SayHello添加相关的断言。
前言
接口相关的测试,http 协议的接口大家平常基础的很多,基本上问题不大。webservice 接口如何测试呢?需先了解什么是 webservice 接口,和 http 协议的接口有什么不一样?
http 协议和soap 协议
我们平常说的接口,其实就是跟服务器进行数据交互,把数据提交到服务端,或者查询服务端的数据,那么如何数据交互,需遵循接口协议,根据协议的不同这里分http协议和soap协议(还有其它协议就不一一列举)
http 协议:HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,HTTP是一个属于应用层的面向对象的协议,
是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
soap 协议:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。
当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。
SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
什么是web service?
通俗来讲就是 soap 协议开发的接口对应的服务就是web service接口,通过 SOAP 在 Web上 提供的软件服务,使用 WSDL 文件进行说明,并通过 UDDI 进行注册。有以下几个特点
基于Web的服务:
服务器端整出一些资源让客户端应用访问(获取数据)
一个跨语言、跨平台的规范(抽象)
多个跨平台、跨语言的应用间通信整合的方案(实际)
http 协议开发的接口对应的服务,我们叫http service
SOAP 协议是什么?
Webservice是基于 SOAP 协议传输数据。SOAP 又是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息。
什么是 XML ?
SOAP 是基于XML 来描述的,必须先了解什么是xml格式,如下格式,就是xml
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getWeatherbyCityName xmlns="http://WebXml.com.cn/">
<theCityName>上海</theCityName>
</getWeatherbyCityName>
</soap:Body>
</soap:Envelope>
什么是 WSDL 文件?
webservice与http接口测试工具
zip
0星
超过10%的资源
119.44MB
下载
WSDL(Web Services Description Language)基于XML语言,用于描述Web Service及其函数、参数和返回值。
它是WebService客户端和服务器端能理解的标准格式。
因为是基于 XML 的,所以 WSDL 既是机器可阅读的,又是人可阅的,这将是一个很大的好处。——可以视为接口文档
WSDL 文件保存在 Web 服务器上,通过一个 url 地址就可以访问到它。客户端要调用一个 WebService 服务之前,要知道该服务的 WSDL 文件的地址。
UDDI 是什么
UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
webservice 接口测试
先根据webservice 提供的接口文档 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
这是一个 WeatherWebService 的接口文档,可以查询天气
以 getWeatherbyCityName 根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数为例
在 theCityName 后面输入:上海,点调用
就可以查看返回的结果了
使用 postman 测试 webservice 接口
根据上面提供的接口请求报文内容,以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /WebServices/WeatherWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getWeatherbyCityName"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getWeatherbyCityName xmlns="http://WebXml.com.cn/">
<theCityName>string</theCityName>
</getWeatherbyCityName>
</soap:Body>
</soap:Envelope>
响应示例
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getWeatherbyCityNameResponse xmlns="http://WebXml.com.cn/">
<getWeatherbyCityNameResult>
<string>string</string>
<string>string</string>
</getWeatherbyCityNameResult>
</getWeatherbyCityNameResponse>
</soap:Body>
</soap:Envelope>
于是可以在postman上填写相关的请求参数
请求url地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
请求头部参数:Content-Type: text/xml; charset=utf-8
请求body传raw,类型选 XML(text/xml),body里面输入
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getWeatherbyCityName xmlns="http://WebXml.com.cn/">
<theCityName>string</theCityName>
</getWeatherbyCityName>
</soap:Body>
</soap:Envelope>
上述是小编为大家整理的Web Service 接口测试,webservice接口测试方法。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~