1. 程式人生 > >與JMeter的第一次親密接觸

與JMeter的第一次親密接觸

相同 技術 mage 請求參數 去掉 spa 添加 admin sam

postman和JMeters是外部接口測試的兩個工具,通過界面化的方法,來實現操作http報文攜帶的請求字段、VK值、json、cookie、header值及文件。本篇主要介紹JMeter。

測試環境:

接口文檔地址:http://doc.nnzhp.cn/

用戶名密碼:xiaohei/******

使用JMeter時首先創建一個線程組,在線程組上創建測試任務。

技術分享圖片

本篇涉及到的測試內容都是get/post的http請求,創建任務時,在線程組-添加-sampler上創建http請求。

技術分享圖片

點綠色三角按鈕運行任務,在任務右鍵-添加-監聽器-查看結果樹,來觀察請求和結果。

技術分享圖片

一、get獲取學生信息

簡要描述:獲取學生信息接口

請求URL:http://api.nnzhp.cn/api/user/stu_info

請求方式:get

參數:

技術分享圖片

JMeter配置方法: 填寫地址、端口默認80、方法GET、填寫路徑(不帶地址)及請求參數名和參數值。

技術分享圖片

技術分享圖片

二、post+KV進行用戶登錄

簡要描述:登錄接口

請求URL:http://api.nnzhp.cn/api/user/login

請求方式:post

參數:

技術分享圖片

用戶名密碼:不可描述/不可描述

JMeter配置方法:

1. 填寫地址、端口默認80、請求方式改為post、填寫路徑

2.K-V值在body中配置

3.登錄成功後,服務器返回sign作為客戶端的cookie值

技術分享圖片

技術分享圖片

三、post+json添加學生信息

簡要描述:添加學生信息,這個接口是用來講入參是json類型的

請求URL:http://api.nnzhp.cn/api/user/add_stu

請求方式:post;入參是json類型

參數:

技術分享圖片

postman配置方法:

1、添加地址、端口、路徑

2、在bodydate中配置json腳本,參數名加"",str參數加"‘,int不加"",必選項必填,結尾以“,”分隔。

技術分享圖片

另外,如果str中有漢字,需要補充配置編碼為utf-8,否則存入數據庫為亂碼,查不到。

技術分享圖片

四、(A)post+cookie完成充值

簡要描述:學生金幣充值接口,這個接口是為了講添加cookie以及身份驗證的

請求URL:http://api.nnzhp.cn/api/user/gold_add

請求方式:post

參數:

該接口有權限驗證,需要admin用戶才可以做操作,需要添加cookie

cookie中key為登錄的用戶名,value從登錄接口中獲取,登陸成功之後會返回sign

技術分享圖片

JMeter配置方法:

1、充值操作需要依賴管理員登錄的cookie,右鍵-添加-配置元件-http信息頭管理器

2、在http信息頭部管理中加入cookie參數

3、配置充值VK值信息

技術分享圖片

技術分享圖片

技術分享圖片

(B)另一種高端配置方式:

1、添加用戶自定義變量,定義ip

2、添加http cookie管理器,配置管理員登錄的用戶名、密碼

3、配置充值VK值信息

技術分享圖片

技術分享圖片

五、通過Referer value驗證,獲取所有學生信息

簡要描述:這個接口是為了說明怎麽添加header信息的

請求URL:http://api.nnzhp.cn/api/user/all_stu

請求方式:get

需要添加header信息,key為Referer value 為http://api.nnzhp.cn/

JMeern配置方法:

1、請求方式為get

2、添加header頭部,添加方式與(四)中相同,配置Referer

3、Referer意義:告訴服務器我是從哪個頁面鏈接過來的,防釣魚網站

技術分享圖片

技術分享圖片

六、通過接口上傳文件

簡要描述:上傳文件接口

請求URL:http://api.nnzhp.cn/api/file/file_upload

請求方式:post

參數:

技術分享圖片

JMeter配置方法:

1、可以使用自定義參數ip,請求方式為post

2、在file upload中,修改文件類型為file,瀏覽選擇文件路徑

技術分享圖片

七:解決亂碼問題

JMeter查看結果樹為亂碼,解決方案:

  1、在jmeter的bin目錄下找到jmeter.properties這個文件上,搜索sampleresult.default.encoding並改為sampleresult.default.encoding=utf-8,去掉註釋符號#
  2、重啟jmeter

技術分享圖片

技術分享圖片

技術分享圖片

body date中添加中文字符為亂碼,解決方案:

  1、在jmeter的bin目錄下找到jmeter.properties這個文件添加上,將jsyntaxtextarea.font.family=Hack的註釋符號#去掉
  2、重啟jmeter

技術分享圖片

八、JMeter參數化

Jmeter參數化的方式有三種:用戶定義的變量、函數生成器、從文件中讀取

1、用戶定義的變量,引用方式:${定義參數名稱}

技術分享圖片

技術分享圖片

2、函數生成器

1、打開函數助手對話框(插件)

2、選擇調用的函數,如-random、-time等

3、配置參數,點生成生成對應函數表達式

4、將函數表達式放入對應的參數中調用

技術分享圖片

隨機數-random

技術分享圖片

時間生成函數-time

技術分享圖片

3、從文件中讀取

路徑:填寫絕對路徑,如果放在bin目錄下可以只寫文件名

參數化名稱:可以填寫多個參數,在文本中以定義的符號分隔為多列

技術分享圖片

技術分享圖片

九、斷言

斷言:將返回內容與設置內容相比對,符合則在結果樹中返回成功,不符合則返回失敗。

技術分享圖片

比如這裏配置一個包括“操作失敗”內容的斷言,而執行返回結果中查不到此內容,則斷言失敗。

技術分享圖片

技術分享圖片

與JMeter的第一次親密接觸