【保姆级教程】手把手教你打造一个可视化接口自动化测试系统

软件æµè¯å·¥ç¨å¸å¿å¤æè½ä¹Javaåºç¡

小编7年工作经验,六年一线大厂工作经验,先后就职于京东、美团、去哪儿网。目前任职创业公司做质量管理工作。。最近想把这些年工作的心得跟大家分享一下。首先呢,想先把现在最常用的接口自动化来分享。将用几篇文章完整的讲解一下,目前刚刚搭建的一整套接口自动化系统。

首先先说一下思路,接口自动化一般的分为三层,最底层的是单元测试,第二层接口自动化测试,第三层UI自动化测试。三层都具备可以最好的保障系统质量。

「干货」接口自动化测试系统(一)

分层自动化测试

同样的,不同的测试适用于不同的公司,不同的产品。比如

1.UI自动化更适用于页面相对较稳定,改动较少。

2.接口自动化适用场景更多,适用于各个阶段。

3.但愿测试呢,更加适用于开发同学进行编写,通过解耦的方式进行自测。

基于上面的描述,和公司的现状,优先进行了接口自动化的搭建。技术选型在公司内部统一了技术栈Java,选用了测试框架Testng,持续集成选择了jenkins,数据库选用了mysql。

选型结束,下一步就要思考整个系统如何构成。初期构想肯定是已最快见效,最快实现的方案。下图能够很直观的看到整体的系统结构。

「干货」接口自动化测试系统(一)

接口自动化实现方案


下面说一下干货,介绍一下自动化实现,其他模块后续文章描述。不啰嗦直接上代码:

//公共http请求公共方法,获取请求返回值,所有的case都调用此方法
public JSONObject httpLinkGet(String url, String data) throws Exception {
        HttpClient httpClient=new SSLClient();
        String link=url+data;
        long starttime=System.currentTimeMillis();
        HttpGet httpGet=new HttpGet(link);
        httpGet.setHeader("*****","******");
        HttpResponse response = httpClient.execute(httpGet);

        //获取响应状态码
        int code = response.getStatusLine().getStatusCode();
        System.out.println("状态码: " + code);
        //获取响应内容
        HttpEntity httpEntity = response.getEntity();
        long endtime=System.currentTimeMillis();
        long extime=starttime-endtime;
        JSONObject jsonObject=new JSONObject();
        String rs = EntityUtils.toString(httpEntity);
        if (rs!=""){
            jsonObject= JSONObject.parseObject(rs);
        }
        return jsonObject;
    }

public JSONObject httpLinkPost(String url, HttpEntity entity) throws Exception {
        String newrs="";
        HttpClient httpClient=new SSLClient();
        HttpPost httpPost=new HttpPost(url);
        httpPost.setHeader("*****","***");
       
        httpPost.setEntity(entity);
        HttpResponse response = httpClient.execute(httpPost);

        //获取响应状态码
        int code = response.getStatusLine().getStatusCode();
        System.out.println("状态码: " + code);

        //获取响应内容
        HttpEntity httpEntity = response.getEntity();
        String rs = EntityUtils.toString(httpEntity);

       
        JSONObject jsonObject= JSONObject.parseObject(newrs);
        jsonObject.put("httpCode",code);

        return jsonObject;

    }
//接口调用方法
		@Test(priority=1 ,description = "")
   //@Test可执行用例注解,priority执行顺序,description备注,还有其他很多注解可用。后面详述
    public void loginSuccess() throws Exception {
        url="";
        String data ="";
        StringEntity entity= new StringEntity(data);
        JSONObject js = httpSend.httpLinkPost(url,entity);//获取返回结果
        Assert.assertEquals(js,"");//断言
    }

截止目前,就可以实现一个简单的自动化测试。通过接口调用和返回结果断言执行接口测试。

下篇文章详细描述自动化框架搭建,有需要的同学记得关注我,也欢迎留言讨论,共同进步。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走(都是免费的~):在我的博客侧边栏里(在电脑上才能看到奥)

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值