Web Service接口测试

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,会自动加入如下配置文件:

2.在java目录下新建一个java class, 定义为一个webService 接口,只有方法,没有具体实现.

import javax.jws.WebMethod;

@javax.jws.WebService
public interface WebService {
    @WebMethod
    String sayHello(String name);
}
3.再同目录下新建一个java class, 用来实现定义的webService接口, 并重载接口中定义方法.
import javax.jws.WebService;
import java.lang.annotation.Annotation;

@javax.jws.WebService
public class WebServiceImple implements WebService {

    public String sayHello(String name){
        System.out.println("请求成功了");  //请求成功的时候控制台输出
        String a= name +"Hello world 你很厉害, 恭喜你!"; //Response 返回给request
        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 服务端发布成功了!

恭喜你发布成功了,接下来用浏览器直接访问

http://localhost:8989/WS_Server/Webservice?wsdl

看到一堆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添加相关的断言.

Story:

马蝇效应认为没有马蝇叮咬,马就会慢慢腾腾,走走停停;如果有马蝇叮咬,马就不敢怠慢,跑得飞快。也就是说,人是需要一根鞭子的,只有被不停地抽打,才不会松懈,才会努力拼搏,不断进步。这根鞭子是压力,是挫折和困难,是危机意识。这一解释不仅适用于个人,同样也适用于企业.

本文分享自微信公众号 - 测试工程师成长之道(louiezhou001),作者:louiezhou

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么要做接口测试

    当前互联网产品迭代频繁的背景下,回归测试的时间越来越少,很难在每个迭代周期对所有功能做完整的回归测试。即使有比较完整的UI自动化(版本迭代带来UI在变, 维...

    louiezhou001
  • SpringMvc 之MockMvc帮我们解决了什么问题

    对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测...

    louiezhou001
  • 接口测试目的

    3.有些参数是必填项, 有些参数是选填项, 如果必填项不填或者填错,会有什么结果都是需要考虑的

    louiezhou001
  • 使用Maven构建Flink第一个项目

    点击左上角File->new Project->后面直接点击下一步->GroupID与artifactId、version随便填写->填写项目名称,点击完成。

    公众号guangcity
  • 聊聊dubbo的DataStore

    dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.j...

    codecraft
  • 聊聊dubbo的DataStore

    dubbo-2.7.2/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.j...

    codecraft
  • Java|Java8 新特性

    前言 Java8已经出现了很久了,但是呢,还是有很多人都还在习惯使用以前的来版本JDK,或者是以前老版本的编程方式。通过一段时间对Java8新特性的学习之后,自...

    算法与编程之美
  • 报警系统QuickAlarm之报警规则的设定与加载

    前面一篇是报警执行器的定义与加载已经完成,但与之对应的报警规则有是如何定义和加载的呢? 此外,既然命名为规则,那么就需要有对应的解析器,以根据报警规则和报警类型...

    一灰灰blog
  • Metrics在Flink系统中的使用分析

    Flink 提供的 Metrics 可以在 Flink 内部收集一些指标,通过这些指标让开发人员更好地理解作业或集群的状态。由于集群运行后很难发现内部的实际状况...

    小勇DW3
  • VB6 调用Excel,并进行操作

    excelsheet.Application.Visible = True

    巴西_prince

扫码关注云+社区

领取腾讯云代金券