JAVA+Maven+TestNG搭建接口测试框架及实例

时间:2024-01-22 11:12:15
 

一、Eclipse安装TestNG(两种安装方式,在线安装以及离线安装)

 

  在线安装

  

  name:TestNG

  Location:http://beust.com/eclipse

  

  

 

  在线安装会比较慢,有的人可能还会链接不上这个地址,所以下面介绍一个离线下载的方法

  离线下载:TestNG Eclipse 插件下载地址http://testng.org/doc/download.html

  a.下载离线安装包并解压

  b.将解压后的文件..\eclipse-testng离线包\features\目录下的文件夹org.testng.eclipse_6.8.6.20130607_0745放到eclipse--》features目录下;

  c.将解压后的文件..\eclipse-testng离线包\org.testng.eclipse_6.8.6.20130607_0745文件夹放到eclipse--》plugins目录下;

  d.重启eclipse.

  查看testng是否安装成功

  file -- new  -- other --  输入testNG看看是否存在

  

 测试框架的搭建

   

  

  

  

 

  导入TestNG依赖包,选择项目  右键  --  build path

  

 

   新建testng class文件 项目右键 new - other

  

  

  

  接口测试用例

package com.test.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

public class HttpUtils {

    static CloseableHttpClient httpclient = null;

    public static void OpenHttpClient()
    {
        //打开浏览器
        httpclient = HttpClients.createDefault();
    }

    public static void CloseHttpClient()
    {
        //关闭浏览器
        try {
            httpclient.close();
        } catch (IOException e) {
            
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        httpclient = null;
    }

    public static JSONObject visitUrlPost(String url)
    {
        //CloseableHttpClient httpclient = HttpClients.createDefault();
        
//        HttpGet httpGet = new HttpGet(url);
        HttpPost httpPost = new HttpPost(url);
//        HttpPost httpPost = new HttpPost(url);
        JSONObject jsonObj=null;
        try {
//            CloseableHttpResponse response = httpclient.execute(httpGet);
            CloseableHttpResponse response = httpclient.execute(httpPost);
            HttpEntity entity = response.getEntity();
            
            StringBuilder jsonStr = new StringBuilder();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"),1024);
            String line = null;
            while ((line = bufferedReader.readLine()) != null) {
                jsonStr.append(line + "/n");
            }
            EntityUtils.consume(entity);
            //获取JSON对象的值
            jsonObj = new JSONObject(jsonStr.toString());
//            String jsonString = JSONObject.toJSONString(jsonStr.toString());
            response.close();


        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }

        
        return jsonObj;
    }
    
    public static JSONObject visitUrlGet(String url)
    {
        //CloseableHttpClient httpclient = HttpClients.createDefault();
        
        HttpGet httpGet = new HttpGet(url);
//        HttpPost httpPost = new HttpPost(url);
        JSONObject jsonObj=null;
        try {
//            CloseableHttpResponse response = httpclient.execute(httpGet);
            CloseableHttpResponse response = httpclient.execute(httpGet);
            HttpEntity entity = response.getEntity();
            
            StringBuilder jsonStr = new StringBuilder();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"),1024);
            String line = null;
            while ((line = bufferedReader.readLine()) != null) {
                jsonStr.append(line + "/n");
            }
            EntityUtils.consume(entity);
            //获取JSON对象的值
            jsonObj = new JSONObject(jsonStr.toString());
//            String jsonString = JSONObject.toJSONString(jsonStr.toString());
            response.close();


        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }

        
        return jsonObj;
    }
}

package com.test.one;

import java.io.IOException;

import org.apache.http.client.ClientProtocolException;
import org.json.JSONObject;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.asserts.Assertion;

import com.test.util.HttpUtils;

public class test {   
    
    public Assertion assertion;
    
        @BeforeClass
        public void beforeClass() {
            assertion = new Assertion();
        }

        @BeforeMethod
        public void runBeforeMethod() {
            // 打开httpclient,相当于打开一个浏览器
            HttpUtils.OpenHttpClient();//这边一定要记得在测试用例开始之前打开浏览器,否则会出现空指针的错误
        }
        @AfterMethod
        public void runAfterMethod() {
            // 打开httpclient,相当于打开一个浏览器
            HttpUtils.CloseHttpClient();
        }
        
      @org.testng.annotations.Test
      public void f() throws ClientProtocolException, IOException {
          
            String loginUrl = "http://xxx/xxx/login?loginName=admin&passWord=123456";
            JSONObject json = HttpUtils.visitUrlPost(loginUrl);
//            boolean success = json.getBoolean("success");
            Boolean success = null;
            if(json.get("message").equals("success")){
                success = true;
            }else{
                success = false;
            }
//            boolean success = json.getBoolean("message");
            String enterTrainningUrl = "http://xxx.xxx?appName=&createTimeEnd=&createTimeStart=&creatorName=&page=1&size=5";
            System.out.println(enterTrainningUrl);
            JSONObject enterObj = HttpUtils.visitUrlGet(enterTrainningUrl);
            System.out.println(enterObj.toString());
            Boolean success2 = null;
            if(json.get("message").equals("success")){
                success2 = true;
            }else{
                success2 = false;
            }
            assertion.assertTrue(success);
      }
    }

   右键单击testng.xml运行

  

  结果如下

  

  运行完成之后,刷新工程,在根目录下会生成一个test_output文件夹,打开index.html,可以看见测试报告