【接口自动化平台搭建】TestNG搭建接口自动化(三)

为什么想在接口自动化中做一个万能工具类?

所谓“万能”,我这里无非是将HTTP、MQ、RPC、DB相关的一些操作,做一个集中的分发。因为我想在TestCase中,直接装配进形参,可以在使用的时候,不需要进行重复的初始化。

解决什么问题?

  • 类似的TestCase需要重复进行实例化,或从对象池中捞工具类对象

不需要关注是否需要工具类,只需要填写apiGan中的服务信息,可以自动根据服务名称从Apollo获取配置信息,并进行实例化,使用万能工具类中的方法可以找到需要使用的常用工具类。

  • 相同的数据库工具类,却被重复实例化。用单例?

很自然想到第一种解决方案是单例,但接口自动化跟服务开发不一样,现在大部分都是分布式架构,某一个服务下最多会操作一个或两个数据库,接口自动化却要面对所有的服务,需要操作很多个不同的数据库。因此单例是行不通的。

  • 不同case之间需要连接不同的mysql/Redis/mq/Http,不同case的使用的万能工具类时长是不确定的。

如果框架可以针对不同的服务自动帮我实例化所有的工具类,那就是极好的。

怎么做?

1、每一个TestCase都实例化一个万能工具类对象,每次case结束时进行=null,等待垃圾回收进行销毁
2、内部具体的某一个工具类,使用对象池进行管理。

package com.base.test.tng.tools;

import com.base.test.tng.framework.entity.ApiGan;

/**
 * @Description: 万能的工具类,做各类型的分发,支持继承装配
 * @Author: Joe Throne
 * @CreatedTime: 2022-02-05 15:07
 */

public class OmnipotentTool {
    private HttpCenterTool httpCenterTool = null;
    private MQCenterTool mqCenterTool = null;
    private RPCenterTool rpCenterTool = null;
    private DbCenterTool dbCenterTool = null;

    public OmnipotentTool(ApiGan apiGan) {
        httpCenterTool = new HttpCenterTool(apiGan);
        mqCenterTool = new MQCenterTool(apiGan);
        rpCenterTool = new RPCenterTool(apiGan);
        dbCenterTool = new DbCenterTool(apiGan);
    }

    public HttpCenterTool sendHTTP(){
        return httpCenterTool;
    }

    public MQCenterTool sendMQ(){
        return mqCenterTool;
    }

    public RPCenterTool sendRPC(){
        return rpCenterTool;
    }

    public DbCenterTool operaDB(){
        return dbCenterTool;
    }

    public void destory(){
        httpCenterTool = null;
        mqCenterTool = null;
        rpCenterTool = null;
        dbCenterTool = null;
    }
}

如何用?

在这里插入图片描述


以下基于HuTool进行的工具类封装

一、封装HTTP工具类

二、封装Mysql工具类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李易安QSR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值