SoapUI

1.介绍

  • SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。
  • SoapUI把一个或多个测试套件(TestSuite)组织成项目,每个测试套件包含一个或多个测试用例(TestCase),每个测试用例包含一个或多个测试步骤,包括发送请求、接受响应、分析结果、改变测试执行流程等。
  • SoapUI是一个自由和开放源码的跨平台功能测试解决方案。通过一个易于使用的图形界面和企业级功能,SoapUI让您轻松, 快速创建和执行自动化功能、回归、合规和负载测试。在一个测试环境,SoapUI提供完整的测试覆盖,并支持所有的标准协议和技术。

2.下载与安装

1.官网下载,不过官网可能会比较慢,可以通过其他网上路径下载。

2.下载后,如图:
在这里插入图片描述
3.安装如下:这里只需指定安装目录即可
在这里插入图片描述
在这里插入图片描述

3.使用

若去官网查看,可以看到,官网上表示:世界上最先进的REST和SOAP测试工具,故该工具主要用途还是SOAP协议和REST协议的测试工具,下面对SoapUI工具的使用做一下说明

3.1 Webservice接口测试

3.1.1 SOAP协议与WSDL文件

在使用SoapUI工具进行Webservice测试之前,首先需要了解SOAP协议与WSDL文件这两个概念

  • SOAP协议

WebService通过Http协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息头的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用WebService。
SOAP协议 = HTTP协议 + XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。

  • WSDL文件

好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

3.1.2 访问Webservice服务

前面已经大致知道了Webservice两个重要概念,那么下面我们就来说说怎么使用他们

1.选择一个公开的webservice服务
公开服务地址
在这里插入图片描述

2.建立项目
在这里插入图片描述

3.生成访问服务的客户端
当我们获取到wsdl的内容后,工具会自动帮我们解析里面的服务,然后把相关服务接口给我们生成好,如图:
在这里插入图片描述
在这里插入图片描述

4.访问服务

获得中国省份、直辖市、地区和与之对应的ID:getRegionProvince
在这里插入图片描述
获得支持的城市/地区名称和与之对应的ID:getSupportCityDataset
在这里插入图片描述

3.1.3 创建测试集

1.上面的每次执行完后,都需要手动去修改一个一个测试,那有没有能自动测试的方案呢

New Project
Project下包含服务(API)和测试站点。
New TestSuit
用于自动化、集群管理测试用例。
New TestCase
针对业务设计不同的测试用例,由Step构成。
New Step
具体的业务请求和相关的配置逻辑组件。

2.创建用例集
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.4 增加断言

当我们程序运行的时候,怎么知道是成功还是失败了呢,那么我们可以增加断言
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.5 多个case运行

在这里插入图片描述
在这里插入图片描述

3.1.6 关联

当我们有两个接口需要测试,但是两个接口又有先后关系的时候,就可以在这里使用

1.现在有两个接口,getRegionProvince获取省份接口能获取中国省份以及编码,如图:
在这里插入图片描述
getSupportCityString获取城市需要上面的省编码来再次查询这个省下面的城市,比如传入四川编码“31123”,如图:
在这里插入图片描述
像这样的测试,接口之间存在有关联依赖的,我们可以在中间增加一个转换器,如图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:这里用到xpath语音去解析的,若不懂的,可以网上去学习一下
在这里插入图片描述

3.1.7 性能测试

在这里插入图片描述
设置压力参数:Threads,线程数即并发用户数;Test Delay,思考时间即请求之间的时间间隔,单位为秒;Limit,运行时间。
在这里插入图片描述
在这里插入图片描述

3.2 Rest接口测试

1.测试代码

@Controller
@RequestMapping("/restful/test")
public class RestfulController {

    private List<Person> person = new ArrayList<Person>();

    //查询
    @ResponseBody
    @RequestMapping(method = RequestMethod.GET)
    public String Get() {
//        person.add(new Person(1,"w22"));
        return getJsonString();
    }

    //新增
    @ResponseBody
    @RequestMapping(method = RequestMethod.POST)
    public String Post(@RequestBody Person p) {
        person.add(p);
        return getJsonString();
    }
    //修改
    @ResponseBody
    @RequestMapping(method = RequestMethod.PUT)
    public String Put(@RequestBody  Person p) {
        for (Person p1 : person) {
            if(p1.getpId().equals(p.getpId())){
                p1.setpName(p.getpName());
            }
        }
        return getJsonString();
    }
    //删除
    @RequestMapping(value = "{id}", method = RequestMethod.DELETE)
    public String DELETE(@PathVariable("id") Integer id) {
        Iterator<Person> iterator = person.iterator();
        while (iterator.hasNext()){
            Person next = iterator.next();
            if(next.getpId().equals(id)){
                iterator.remove();
            }
        }
        return getJsonString();
    }

    private String getJsonString() {
        ObjectMapper mapper = new ObjectMapper();
        String jsonStrList = null;
        try {
            jsonStrList = mapper.writeValueAsString(person);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return jsonStrList;
    }
}

public class Person {

    private Integer pId;
    private String pName;
    }

2.新建Restful连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试网址

3.3 Http接口测试

http不好用,感觉
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

SoapUI简介和入门实例解析
soapUI快速入门(测试一个http登录接口)
API自动化测试 Soap UI工具介绍
官网入门教程

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值