您的位置 首页 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,"");//断言
    }  

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

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

感谢。

文章来源:智云一二三科技

文章标题:「干货」接口自动化测试系统(一)

文章地址:https://www.zhihuclub.com/193739.shtml

关于作者: 智云科技

热门文章

网站地图