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. python3+Scrapy爬虫使用pipeline数据保存到文本和数据库,数据少或者数据重复问题

    爬取的数据结果是没有错的,但是在保存数据的时候出错了,出现重复数据或者数据少问题.那为什么会造成这种结果呢? 其原因是由于Spider的速率比较快,而scapy操作数据库操作比较慢,导致pipelin ...

  2. IDEA运行单个Java文件

    对于某些Java示例可能是只有单个文件,并不是完整的Java工程,那么要如何运行单个Java文件呢,以IDEA为例. 我的环境: IDEA 2017.3.2 jdk 1.8.0.73 操作步骤: 1. ...

  3. HTML 中img标签不显示

    异常 图片请求响应吗: 403, url响应如下: Request Method: GET Status Code: 403 Forbidden Remote Address: ***.***.**. ...

  4. selenium环境搭建:

    环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...

  5. LG4111/LOJ2122 「HEOI2015」小Z的房间 矩阵树定理

    问题描述 LG4111 题解 矩阵树定理板子题. \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; #defin ...

  6. ResultMap(还没细看)

    前言 MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而res ...

  7. CF1278C-Berry Jam-(前缀和)

    https://vjudge.net/problem/CodeForces-1278C 题意:有2n瓶果酱,中间有一个楼梯隔开,从中间往左或右两边清空果酱,使得两种果酱的数量相等,最少要清空多少瓶 思 ...

  8. linux 基本命令 1

      Linux基本命令(一) 目标 熟练使用 Linux常用的命令 ls  查看文件 clear   清空 cd pwd mkdir touch rm cp mv tree chmod find gr ...

  9. [PHP] 再续 Laravel 5.5 接口 跨域问题 【终极暴力解决办法】

    上文中提到 Laravel5.5 使用 laravel-cors 实现 Laravel 的跨域配置 用插件来跨域 此方法能解决一部分api 请求问题 但我碰到的是 接口 请求size 超过10k,导致 ...

  10. 【2019.8.12 慈溪模拟赛 T2】汪哥图(wang)(前缀和)

    森林 考虑到题目中给出条件两点间至多只有一条路径. 就可以发现,这是一个森林. 而森林有一个很有用的性质. 考虑对于一棵树,点数-边数=\(1\). 因此对于一个森林,点数-边数=连通块个数. 所以, ...