一、學(xué)習(xí)測(cè)試工具JMeter
最近在學(xué)習(xí)JMeter测萎,就在摸索后把學(xué)習(xí)的過程記錄下來亡电,一是加強(qiáng)印象,二是便于發(fā)現(xiàn)問題~~~
flag:以后的學(xué)習(xí)自己都要總結(jié)記錄一下9枨啤7萜埂!
1、JMeter是啥或辖?能做啥瘾英?
Apache JMeter是Apache組織開發(fā)的基于Java的功能和壓力測(cè)試工具。
功能測(cè)試:
JMeter能夠?qū)?yīng)用程序做功能/回歸測(cè)試颂暇,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證程序返回期望結(jié)果缺谴。
接口測(cè)試:
根據(jù)開發(fā)的接口文檔(如果沒有就使用抓包工具Fiddler和Charles都可以)寫測(cè)試用例,準(zhǔn)備測(cè)試數(shù)據(jù)耳鸯,將測(cè)試腳本錄入湿蛔,執(zhí)行測(cè)試用例,發(fā)現(xiàn)BUG县爬。
壓力測(cè)試:
JMeter 可以用于對(duì)服務(wù)器阳啥、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,來自不同壓力類別下測(cè)試它們的強(qiáng)度和分析整體性能捌省。
2苫纤、JMeter的下載安裝
運(yùn)行JMeter前提:安裝JDK(Java Development Kit) 是 Java 語言的軟件開發(fā)工具包
安裝JDK
①下載JDK:(ps: 根據(jù)自己的操作系統(tǒng)和系統(tǒng)類型,選擇自己需要的JDK)
②安裝(我是windows64位操作系統(tǒng)纲缓,下載后是一個(gè)exe執(zhí)行文件卷拘,點(diǎn)擊運(yùn)行)
③下載完成后需要配置環(huán)境變量
(Ps:變量配置地址為:計(jì)算機(jī)系統(tǒng)—高級(jí)系統(tǒng)設(shè)置—高級(jí)—環(huán)境變量-系統(tǒng)變量)
變量名:JAVA_HOME
變量值:C:\Program Files\Java\jdk1.8.0_144(ps:運(yùn)行后生成的jdk文件夾的在計(jì)算機(jī)的路徑)
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(前面有個(gè)·)
變量名:Path (ps:變量是已經(jīng)存在的,所以找到Path系統(tǒng)變量祝高,編輯添加變量值就行)
變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
安裝JMeter
①jdk搞定后栗弟,開始下載JMeter。點(diǎn)此下載
②安裝:解壓到E盤根目錄了
③配置環(huán)境變量
變量名:JMETER_HOME
變量值:E:\apache-jmeter-3.2
變量名:PATH
變量值:%JMETER_HOME%\lib
最后乍赫!啟動(dòng)JMeter
在JMeter文件的bin路徑下,找到bin-jmeter.bat 陆蟆,雙擊啟動(dòng)
此時(shí)雷厂,會(huì)彈出兩個(gè)窗口,一個(gè)是windows窗口叠殷,一個(gè)是Jmeter我們使用的測(cè)試界面
(PS:使用JMeter時(shí)改鲫,彈出的widows命令窗口不能關(guān)閉)
3、Jmeter工具介紹
①主界面介紹:
JMeter的主界面主要分為狀態(tài)欄林束、菜單欄像棘、工具欄、樹形標(biāo)簽欄和內(nèi)容欄
- 狀態(tài)欄:主要顯示JMeter的主版本和release版本壶冒。
菜單欄:全部的功能的都包含在菜單欄中缕题。
工具欄:工具欄中的按鈕在菜單欄可以找到,工具欄就相當(dāng)于菜單欄常用功能的快捷按鈕胖腾。
- 樹形標(biāo)簽欄:樹形標(biāo)簽欄通常用來顯示測(cè)試用例相關(guān)的標(biāo)簽烟零。
- 內(nèi)容欄:配合樹形標(biāo)簽欄顯示瘪松,樹形標(biāo)簽點(diǎn)擊哪個(gè)標(biāo)簽,內(nèi)容欄中就顯示相應(yīng)內(nèi)容和操作瓶摆。
②組件介紹
- 測(cè)試計(jì)劃:起點(diǎn)凉逛,所有元件的容器 (PS:類似postman里面的collection)
-
線程組:一定數(shù)量的并發(fā)用戶,可以通過設(shè)置線程數(shù)來進(jìn)行性能測(cè)試群井。接口測(cè)試就是默認(rèn)1就可以了状飞。
在“測(cè)試計(jì)劃”上點(diǎn)擊鼠標(biāo)右鍵-->添加-->threads(Users)–>線程組
-
Http請(qǐng)求默認(rèn)值:測(cè)試場(chǎng)景環(huán)境參數(shù)設(shè)置。當(dāng)被測(cè)系統(tǒng)有唯一的訪問域名和端口時(shí)书斜,這個(gè)組件很好用诈闺。
同時(shí)更改訪問域名和端口時(shí)造寝,統(tǒng)一配置數(shù)據(jù) (PS:類似postman里面的環(huán)境管理/測(cè)試環(huán)境/外測(cè)環(huán)境轉(zhuǎn)換)
- HTTP信息頭管理器:request的設(shè)置 (PS:類似postman里面的headers的設(shè)置)
- Sampler—http請(qǐng)求:錄入被測(cè)接口請(qǐng)求路徑钳垮,對(duì)應(yīng)的請(qǐng)求方法蝗拿,以及隨請(qǐng)求一起發(fā)送的參數(shù)列表
- 響應(yīng)的斷言:添加斷言內(nèi)容,判斷實(shí)際結(jié)果和預(yù)期結(jié)果是否一致
- 添加監(jiān)聽器:查看運(yùn)行結(jié)果<查看結(jié)果樹><聚合報(bào)告>等等
4样屠、舉個(gè)栗子:獲取微信公眾號(hào)的用戶列表 接口
①獲取微信公眾號(hào)的access_token
為什么要獲取access_token?:因?yàn)闇y(cè)試微信公眾號(hào)的接口穿撮,都需要一個(gè)access_token的參數(shù)。
請(qǐng)求如下:
協(xié)議:https
請(qǐng)求方式: GET
IP地址:api.weixin.qq.com
路徑:/cgi-bin/token
參數(shù):
grant_type=client_credential
appid=
secret=
所以要先獲取到appID和appsecret兩個(gè)參數(shù)的值
- 方法是:先申請(qǐng)微信測(cè)試號(hào)痪欲。點(diǎn)此申請(qǐng)悦穿,有效時(shí)長(zhǎng)7200s
- 掃一掃后,頁(yè)面自動(dòng)刷新业踢,出現(xiàn)appID和appsecret的信息
-
example:
response結(jié)果為:
{"access_token":"77qOdW0hBEH4Oo5_NJIGZBzw5GZ4CzhEotI-yYp9Yw2ef5eRHn71bGnZDVgsAGvvD7vo3B2CgVQsKgJCf8M-0vozV-oFT0dWM8pKoDpMe4Ne3JcYUKYZzjOA5QvKKf1WTBGfAHAFNS","expires_in":7200}
就獲取到需要的access_token值了
-------- JMeter里面如下填寫-------------------------------------------------
②接下來找一個(gè)微信公眾號(hào)的接口:《獲取用戶列表》接口說明如下:
response結(jié)果為:報(bào)錯(cuò)栗柒,access_token值是無效的,說明上面獲取到的值直接使用是不可以的
{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [h0360vr69!]"}
用抓包工具可以看到知举,因?yàn)閍ccess_token是動(dòng)態(tài)變化的瞬沦,上一次獲取到的值在下一次運(yùn)行的時(shí)候已經(jīng)變了。
解決辦法:參數(shù)化——正則表達(dá)式取值
response結(jié)果為:
{"total":1,"count":1,"data":{"openid":["oy_yXwrQQjt9ZlhJoAbgvvtnr0lA"]},"next_openid":"oy_yXwrQQjt9ZlhJoAbgvvtnr0lA"}
這就對(duì)啦9臀9渥辍!
# 二锰提、 簡(jiǎn)單接口自動(dòng)化 jmeter+jekins
這部分只是部分的自動(dòng)化的工作~~~后面的再研究~~~O(∩_∩)O
包括:
###自動(dòng)化執(zhí)行接口腳本
###生成自定義格式的測(cè)試報(bào)告
###自動(dòng)發(fā)送測(cè)試報(bào)告