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  服务端发布成功了!

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

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

今日推荐阅读文章精选推荐

为什么要做接口测试

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

咨询工作加微信

扫描二维码

欢迎自荐和推荐, 需要的微信推送简历!

请猛戳下面二维码了解更多

Web Service 接口测试的更多相关文章

  1. web service接口测试工具选型

    1  简介 1.1   范围 1.2   目的 本文档用于指导测试部进行接口测试. 2013-03-11磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.com ...

  2. http接口和web service接口测试区别是什么?

    1.web service有一套完整的协议标准,其中有soap协议,用来进行消息的传递. 2.soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式 Content-type设置 ...

  3. Python接口测试实战5(下) - RESTful、Web Service及Mock Server

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  4. Web Service概念梳理

    计算机技术难理解的很多,Web Service 对我来说就是一个很难理解的概念:为了弄清它到底是什么,我花费了两周的时间,总算有了一些收获,参考了不少网上的资料,但有些概念说法不一.我以w3c和 一些 ...

  5. Web Service性能测试方案

    目录: 1.web Service简介 2.SoapUI介绍 3.使用SoapUI进行web service性能测试 4.使用LR进行web service性能测试 5.使用JMeter进行web s ...

  6. loadrunner:web services接口测试

    本文以实例讲解web services接口测试操作,内容包括:脚本生成.参数化和接口与接口间的取值关联操作. 网站"http://www.webxml.com.cn/zh_cn/web_se ...

  7. .NET基础拾遗(7)Web Service的开发与应用基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...

  8. Web Service随笔

    什么是Web Service? WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络 ...

  9. 应用Apache Axis进行Web Service开发

    转自(http://tscjsj.blog.51cto.com/412451/84813) 一.概述 SOAP原意为Simple Object Access Protocol(简单对象访问协议),是一 ...

随机推荐

  1. [b0001] 伪分布式 hadoop 2.6.4

    说明: 任务:搭建Hadoop伪分布式版本. 目的:快速搭建一个学习环境,跳过这一环境,快速进入状态,使用Hadoop一些组件做些任务 没有选择2.7,觉得bug比较多,不稳定. 选择伪分布式简单快速 ...

  2. OSI模型级各层功能

    OSI(Open System Interconnection 即 开放系统互联)国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架.OS ...

  3. 12. final修饰符

    一.final修饰符概述 1. final可以修饰类.变量和方法 2. final修饰的类.变量和方法不可改变 3. 不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不 ...

  4. (六)Amazon Lightsail 部署LAMP应用程序之升级到Amazon EC2

    升级到Amazon EC2 将Amazon Lightsail实例升级为Amazon EC2 您将进行以下操作: ①创建使用 Amazon RDS的Web前端实例的快照 ②将该快照导出到 Amazon ...

  5. Node.js—简介

    一.Node.js是什么 1. 基本概述 Node.js是一个可以让JavaScript运行在服务器端的平台.它是一个为实时Web应用开发而诞生的平台,它从诞生之初就充分考虑了在实时响应.超大规模数据 ...

  6. 2017年蓝桥杯B组C/C++决赛题目

    2017年第八届蓝桥杯B组C/C++决赛题目 点击查看2017年蓝桥杯B组C/C++决赛题解     1.36进制 对于16进制,我们使用字母A-F来表示10及以上的数字. 如法炮制,一直用到字母Z, ...

  7. Python常用数据类型简介

    1.变量的三个基本特征 1,大印 2,判断变量值是否相等 3,判断变量id是否相等 2.常用数据类型分类 数字类型(int) 字符串类型(str) 列表类型(list) 字典类型(dict(dicti ...

  8. CF613B Skills

    CF613B Skills 洛谷评测传送门 题目描述 Lesha plays the recently published new version of the legendary game hack ...

  9. QList去掉重复项 .toSet()报错???

    我们知道QList::toSet()函数可以将QList转成QSet.可我却遇到报错: QList<QVariant> datas = it.value().values(); QSet& ...

  10. linux软链接

    这是linux中一个非常重要的命令,他的功能是为某一个文件在另一个位置建立一个同步的链接,这个命令最常用的参数是-s, 具体用法是: ln -s 源文件 目标文件 当我们需要在不同的目录,用到相同的文 ...