1. 程式人生 > >介面自動化落地(二:HttpClient+testNG實現對介面的測試及校驗)

介面自動化落地(二:HttpClient+testNG實現對介面的測試及校驗)

這是之前login介面的程式碼

@Test(groups = "loginTrue",description = "使用者登入介面測試")
    public void loginTrue() throws IOException {
        SqlSession session = DatabaseUtil.getSqlsession();
        LoginCase loginCase = session.selectOne("loginCase",1);
        System.out.println(loginCase.toString());
        System.out
.println(TestConfig.loginUrl); }

接下來只需要進行兩步:1.傳送請求 2.驗證返回結果

//第一步傳送請求
String result = getResult(loginCase);
//第二步驗證返回結果
Assert.assertEquals(loginCase.getExpected(),result);

getResult方法被我抽離出來了放在下面,原因是無論我是登入成功,或者登入失敗,等會執行相同的操作,只是測試資料和校驗部分會不一樣。
這是getResult方法的具體程式碼:

private String getResult(LoginCase loginCase) throws IOException {
        HttpPost post = new HttpPost(TestConfig.loginUrl
); //設定body部分 JSONObject param = new JSONObject(); param.put("userName",loginCase.getUserName()); param.put("password",loginCase.getPassword()); //設定header部分資訊 post.setHeader("content-type","application/json"); StringEntity entity = new StringEntity(param.toString
(),"utf-8"); post.setEntity(entity); //測試執行 String result; HttpResponse response = TestConfig.defaultHttpClient.execute(post); result = EntityUtils.toString(response.getEntity(),"utf-8"); System.out.println(result); TestConfig.store = TestConfig.defaultHttpClient.getCookieStore(); return result; }

獲取的結果會返回到result中,然後與mysql中存的預期值loginCase.getExpected()進行對比,如結果一樣則測試通過。
這裡寫圖片描述

相關推薦

介面自動化落地HttpClient+testNG實現對介面測試

這是之前login介面的程式碼 @Test(groups = "loginTrue",description = "使用者登入介面測試") public void loginTrue() throws IOException { S

介面自動化落地jenkins整合httpclient專案並生成線上報告

實現思路:一般情況下,jenkins是配置git地址,然後直接呼叫git的程式碼,打包並進行測試。但是我在實現過程中,由於公司的gitlab做了限制,必須使用SSH key的方式進行程式碼拉取,然後在拉程式碼的過程中,因為jenkins預設的admin使用者

Java HttpClient連線與狀態管理、認證與cache

參考文獻:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/ 文章目錄 2.連線管理 2.1 Http連線路由 2.2 Http連線管理 2.2.1

資料結構篇校園最短路徑導航弗洛伊德演算法理解與應用

求最短路徑最常用的有迪傑斯特拉(Dijkstra)和弗洛伊德(Floyd)演算法兩種。本著簡潔為王道的信條,我選擇了Floyd演算法。 Floyd演算法 首先來看一個簡單圖,紅色標記代表在陣列的下標,橙色標記代表距離(邊權值) 我們用D[6][6]這個矩陣儲存兩點之間最短路徑,

觸發器、BEFORE和AFTER的區別使用場景

DML操作的行級觸發器,分為before和after兩類。比如下面在同一張表上分別建了2個觸發器然後用一個insert語句進行觸發結果發現,這2類觸發器捕捉的:OLD和:NEW資料實際是一樣的。那麼什麼時候用before,什麼時候用after呢?我們先要知道這2種觸發器的特性

webkitdirectory 實現資料夾上傳包含資料夾大小和檔案個數的

由於工作中業務需要在介面提供使用者上傳資料夾的功能,平時上傳檔案做的還多一些,包括對上傳檔案也有許多外掛提供了良好的支援,比如fileinput.js,還有webupload.js。。。,但對上傳資料夾的支援就沒有,h5裡提供了webkitdirectory  來實現上傳資

介面自動化HttpClient + TestNG + Java() - 第一個介面測試get請求

在上一篇中,我們搭建好了HttpClient + TestNG + Java的自動化介面測試環境,這一篇我們就趕緊開始編寫我們的第一個介面測試用例。   本篇會對問題解決的思路進行更詳盡的闡述。   2.1 確定被測介面 首先一個現實的問題,我們要有一個待測介面來驗證我們自動化方

介面自動化HttpClient + TestNG + Java(一) - 介面測試概述+自動化環境搭建

1.1 介面測試簡介 1.1.1 什麼是介面測試 開始學習介面自動化測試之前,我們先要來了解什麼是介面,以及什麼是介面測試。 我們都知道,測試從級別上劃分可以分為 元件測試 整合測試 系統測試 驗收測試 其中在整合測試這個階段,一個最主要的測試活動就是介面測試。在元件測試中,我

接口自動化HttpClient + TestNG + Java() - 第一個接口測試get請求

proto cep 發送 protocol pac head exception 種類 exceptio 在上一篇中,我們搭建好了HttpClient + TestNG + Java的自動化接口測試環境,這一篇我們就趕緊開始編寫我們的第一個接口測試用例。 本篇會對問題解

介面自動化HttpClient + TestNG + Java(三) - 初步封裝和testng斷言

在上一篇中,我們寫了第一個get請求的測試類,這一篇我們來對他進行初步優化和封裝   3.1 分離請求傳送類 首先想到的問題是,以後我們的介面自動化測試框架會大量用到傳送http請求的功能。 那麼這一部分的處理,可以將他分離出來,以後的測試類只需要呼叫請求類的方法實現傳送請求和接收反饋的功能

selenium自動化實戰-基於python語言 編寫腳本

獲取 pat 打開 border 命令 需要 框架 attribute 一個 上一篇文章說到顯示等待和隱式等待語句,我們繼續學習下面的命令方法。 8. 定位一組元素 這裏書上是自己寫了一個頁面代碼,通過訪問本地這個頁面來舉例。但我覺得找一個現有的頁面自己琢磨更有意思,而且

接口自動化HttpClient + TestNG + Java(一) - 接口測試概述+自動化環境搭建

系列 深度 理念 eclips 觸發 開始學習 color pip ima 1.1 接口測試簡介 1.1.1 什麽是接口測試 開始學習接口自動化測試之前,我們先要來了解什麽是接口,以及什麽是接口測試。 我們都知道,測試從級別上劃分可以分為 組件測試 集成測試 系統測試 驗

Asp.net Core 使用Jenkins + Dockor 實現持續整合、自動化部署部署

前面又是廢話 我之前寫過: Asp.Net Core 程式部署到Linux(centos)生產環境(一):普通部署 Asp.Net Core 程式部署到Linux(centos)生產環境(二):docker部署 大家可能會有疑問,分散式環境當中的部署還是跟我們在windows一樣,一臺機一臺機的去

Javascript設計模式與開發實踐詳解策略模式 http://www.jianshu.com/p/ef53781f6ef2

的人 思想 ram gis pan pro msg have 改變 上一章我們介紹了單例模式及JavaScript惰性單例模式應用這一次我主要介紹策略模式策略模式是定義一系列的算法,把它們一個個封裝起來,並且讓他們可以互相替換。比方說在現實中很多時候也有很多途徑到達同一個

.NET深入解析LINQ框架LINQ優雅的前奏

mode 沒有 不想 log 業務 queryable 上下 dom 做了 閱讀目錄: 1.LINQ框架的主要設計模型 1.1.鏈式設計模式 (以流水線般的鏈接方式設計系統邏輯) 1.2.鏈式查詢方法(逐步加工查詢表達式中的每一個工作點) 2.LINQ框架的核心設計

使用jmeter+ant進行接口自動化測試(數據驅動)之利用apache-ant執行測試用例並生成HTML格式測試報告

extras true -c 註釋符 www 文件的 介紹 ntc encoding 在 使用jmeter+ant進行接口自動化測試(數據驅動)之一 介紹了如何使用csv文件來批量管理接口 本次接著介紹如何利用apache-ant執行測試用例並生成HTML格式測試報告 ①下

自動化部署

自動化部署腳本2 自動化部署流程設計 2.1 需求分解 一個集群有10個節點: 一鍵部署10個節點。 一鍵回滾到任意版本。 一鍵回滾到上個版本。 2.2 部署流程分解 2.2.1 準備 代碼放在哪裏? git/svn 獲取什麽版本的代碼?svn: 指定版本號git: 指定tag 差異解決: 各個節點

數據驅動測試使用TestNG和CSV文件進行數據驅動

exceptio gets 完成 urn fine 數據驅動 兩個 二位數組 == 轉載:https://blog.csdn.net/heart_1014/article/details/52013173 使用@DataProvider註解定義當前方法中的返回對象CSV文件

python3語言學習筆記運算子

算數運算子:加減乘除+-*/,取餘%,冪**,//向下取整除法 比較(關係)運算子:==等於,!=不等於,>大於,<小於,>=大於等於,<=小於等於         返回值均為True或者False,Python3中True與F

樸素貝葉斯實戰

文字分類問題 下面我們來看一個文字分類問題,經典的新聞主題分類,用樸素貝葉斯怎麼做。 #coding: utf-8 import os import time import random import jieba #處理中文 #import nltk #處理英文 imp