<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java+SpringBoot+Maven+TestNG+httpclient+Allure+Jenkins實現接口自動化

      一、方案

      需求目標:測試左移,測試介入研發過程,驗證單接口正常及異常邏輯

      選用工具:Java、SpringBoot、Maven、TestNG、httpclient、Allure、Jenkins

      方案:創建測試接口測試工程,參照研發設計文檔和設計思路,編寫正常及異常用例,直接調用服務端接口,覆蓋接口邏輯和驗證異常處理,提升接口健壯性。

      二、項目結構及代碼說明

      2.1 項目結構

      2.2 代碼示例

      接口腳本舉例說明:AddCustomerTest

      點擊查看代碼
      package cases.crc.customer;
      
      import com.fasterxml.jackson.databind.JsonNode;
      import com.fasterxml.jackson.databind.ObjectMapper;
      import config.TestConfig;
      import model.CrcCustomerCase;
      import model.InterfaceName;
      import org.apache.http.HttpResponse;
      import org.apache.http.client.methods.HttpPost;
      import org.apache.http.entity.StringEntity;
      import org.apache.http.impl.client.DefaultHttpClient;
      import org.apache.http.util.EntityUtils;
      import org.apache.ibatis.session.SqlSession;
      import org.json.simple.JSONObject;
      import org.testng.Assert;
      import org.testng.annotations.BeforeTest;
      import org.testng.annotations.Test;
      import utils.ConfigFile;
      import utils.DatabaseUtil;
      
      import java.io.IOException;
      import java.util.Random;
      
      public class AddCustomerTest {
          @BeforeTest
          public void beforeTest(){
              TestConfig.defaultHttpClient = new DefaultHttpClient();
              TestConfig.crcCustomerCreateUrl = ConfigFile.getUrl(InterfaceName.ADDCUSTOMER);
          }
      
          @Test(groups = "addCustomerSuccess",description = "新增客戶成功")
          public void addCustomerSuccess() throws IOException {
              // 使用HttpClient調用接口
              HttpPost post = new HttpPost(TestConfig.crcCustomerCreateUrl);
              //設置請求頭信息 設置header,并且繞過token校驗
              post.setHeader("content-type","application/json");
              post.setHeader("Authorization","Bearer test1");
      
              // 設置json參數
              JSONObject param = new JSONObject();
              String param1 = randomNumber();
              param.put("customerName",param1);
              param.put("contacts","hqq");
              param.put("mobile","13000001111");
              param.put("address","上海市閔行區");
              param.put("zipcode","310030");
              param.put("areacode",360425);
              param.put("status",0);
              param.put("bankAccount","123456");
              param.put("legalPerson","hqq");
              param.put("usci",param1);
              param.put("description","自動化接口測試客戶");
      
              //將參數信息添加到方法中
              StringEntity entity = new StringEntity(param.toString(),"utf-8");
              post.setEntity(entity);
      
              //執行post方法
              HttpResponse response = TestConfig.defaultHttpClient.execute(post);
      
              //聲明一個對象來進行響應結果的存儲,獲取響應結果
              String strResult = EntityUtils.toString(response.getEntity(),"utf-8");
      
              // 根據用戶名數據庫查詢客戶id
              SqlSession session = DatabaseUtil.getSqlSession();
              CrcCustomerCase o = session.selectOne("getCustomerInfoByCustomerName", param1);
              int customerId = o.getId();
      
              // 將json格式的字符串轉換成json對象,便于斷言
              ObjectMapper mapper = new ObjectMapper();
              try{
                  JsonNode jsonNode = mapper.readTree(strResult);
                  Assert.assertEquals(jsonNode.get("code").asInt(),0);
                  Assert.assertEquals(jsonNode.get("data").asInt(),customerId);
              }catch (Exception e){
                  System.out.println("json轉換失敗");
                  e.printStackTrace();
              }
          }
      
      
          @Test(groups = "addCustomerFaile",description = "新增客戶失敗,客戶名稱存在")
          public void addCustomerFailed01() throws IOException{
              // 使用HttpClient調用接口
              HttpPost post = new HttpPost(TestConfig.crcCustomerCreateUrl);
              //設置請求頭信息 設置header,并且繞過token校驗
              post.setHeader("content-type","application/json");
              post.setHeader("Authorization","Bearer test1");
      
              // 設置json參數
              JSONObject param = new JSONObject();
              param.put("customerName","格力集團");
              param.put("status",0);
      
              //將參數信息添加到方法中
              StringEntity entity = new StringEntity(param.toString(),"utf-8");
              post.setEntity(entity);
      
              //執行post方法
              HttpResponse response = TestConfig.defaultHttpClient.execute(post);
      
              //聲明一個對象來進行響應結果的存儲,獲取響應結果
              String strResult = EntityUtils.toString(response.getEntity(),"utf-8");
      
              // 將json格式的字符串轉換成json對象,便于斷言
              ObjectMapper mapper = new ObjectMapper();
              try{
                  JsonNode jsonNode = mapper.readTree(strResult);
                  Assert.assertEquals(jsonNode.get("code").asInt(),1001001012);
                  Assert.assertEquals(jsonNode.get("msg").asText(),"客戶名稱已存在");
              }catch (Exception e){
                  System.out.println("json轉換失敗");
                  e.printStackTrace();
              }
          }
      
          public String randomNumber(){
              String res = "Auto-";
              Random random = new Random();
              for (int i = 0; i < 6; i++) {
                  int randomInt = random.nextInt(10);
                  res += randomInt;
              }
              System.out.println("生成的隨機字符串:" + res);
              return res;
          }
      }
      
      

      三、項目集成和測試報告

      3.1 準備工作

      1)插件安裝 allure

      2)Jenkins:系統管理--》全局工具配置

      3.2 jenkins新建自由風格的項目:esmc-test-autotest

      1)源碼:配置gitlab上的源碼地址、用戶名密碼、分支等

      2)maven命令:mvn clean test 清理target/目錄下的文件,并執行src/test/下的測試用例

      3)執行mvn test后,會生成allure-results文件夾存放生成的json報告

      4)需要配置Allure,查看allure-results/的測試報告

      3.3 構建項目

      3.4、查看結果:點擊Allure Report按鈕

      posted @ 2023-12-29 18:19  hqq的進階日記  閱讀(999)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 欧美成人精品| 精品人妻人人做人人爽| 99久久夜色精品国产亚洲| 成人网站免费在线观看| japanese丰满奶水| 亚洲最大成人在线播放| 午夜AAAAA级岛国福利在线| 国产精品亚洲а∨天堂2021| 国产漂亮白嫩美女在线观看| 国产精品无码成人午夜电影| 国产午夜福利视频第三区| 少妇又紧又色又爽又刺激视频| 亚洲成在人线AⅤ中文字幕| 国产一区二区三区精品自拍| 日韩AV高清在线看片| 国产成人精品无码片区在线观看 | 国产欧美精品一区二区三区| 国产精品SM捆绑调教视频| 亚洲欧美色一区二区三区| mm1313亚洲国产精品| 在线一区二区中文字幕| 甘德县| 国产精品一区中文字幕| 亚洲午夜福利精品无码不卡| 久热天堂在线视频精品伊人| 欧美成人午夜在线观看视频| 少妇人妻偷人精品免费| 国产一区二区三区麻豆视频 | 女人香蕉久久毛毛片精品| 亚洲乱妇熟女爽到高潮的片| 中文字幕在线日韩| 国产精品高清一区二区三区| 国产精品对白刺激久久久| 国产精品亚洲一区二区三区| 性男女做视频观看网站| 亚洲日韩久热中文字幕| 亚洲国产精品人人做人人爱| 中国女人高潮hd| 亚洲成av人片无码天堂下载 | 城口县| 亚洲天堂一区二区三区四区|