1. 程式人生 > >Jmeter中引數化的使用

Jmeter中引數化的使用

在使用Jmeter進行介面測試時,如果提交的引數不變,那麼就會讀取快取資料,無法測試出伺服器真正的負載能力,所以要對提交的引數進行引數化來解決這一問題。

在Jmeter中經常使用CSV Data Set Config讀取外部資料來源完成引數化。
Step1:
新增一個HTTP Sampler, 根據測試文件將需要的資訊準備好。
這裡寫圖片描述
這裡寫圖片描述

Step2:
要模擬不同使用者登入,就要準備多個使用者的登入資訊。將該資訊存放在userinfo .txt的檔案中。
為Testplan新增配置元件, 選擇CSV Data Set Config。具體設定如下:
這裡寫圖片描述

再回到Sampler中,將需要提交的引數值,進行引數化處理。
取值方式為${xxx}, 要與CSV中Variable Names一致。
這裡寫圖片描述

Step3:
新增斷言。 如果使用者登入成功,在響應資料中會包含該使用者的accessToken,所以添加了一個響應斷言,要驗證請求是否成功。
這裡寫圖片描述

Step4:
新增斷言監聽器和結果樹。

都準備好後,傳送請求。 會發現斷言失敗。提示並沒有包含accessToken欄位。
這裡寫圖片描述

檢視結果樹: 提示使用者名稱無效。
這裡寫圖片描述
再看看提交的資料是否有問題:
這裡寫圖片描述

發現問題啦,準備好的測試資料中,使用者名稱就是手機號,而在postdata中看到手機號前多出一寫字元,導致使用者名稱錯誤。

問題原因:
我是使用Windows自帶的記事本將使用者資訊儲存為UTF-8格式的檔案,這是問題的根源。
*BOM採用UTF-8編碼。幾乎所有的文字編輯軟體都可以顯示並編輯UTF-8編碼的檔案。但是很遺憾,其中很多軟體的表現並不理想。
如果您在修改任何PHP檔案後發生:
* 不能登入或者不能登出;
* 頁頂出現一條空白;
* 頁頂出現錯誤警告;
* 其它不正常的情況。
則多半是編輯器的問題。
類似WINDOWS自帶的記事本等軟體,在儲存一個以UTF-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字元,用於讓記事本等編輯器識別這個檔案是否以UTF-8編碼。*

使用EditPlus將該檔案重新編輯。
先將EditPlus設定一下:
首選項–檔案–預設文字編碼: 修改為UTF-8
再將文件–文字編碼設定為UTF-8

再次執行指令碼,結果正常。
斷言如果沒有錯誤,就只顯示Sampler的名字
這裡寫圖片描述

這裡寫圖片描述

相關推薦

Jmeter引數的使用

在使用Jmeter進行介面測試時,如果提交的引數不變,那麼就會讀取快取資料,無法測試出伺服器真正的負載能力,所以要對提交的引數進行引數化來解決這一問題。 在Jmeter中經常使用CSV Data Set Config讀取外部資料來源完成引數化。 Step1:

關於JMETER引數總結

1,JMETER引數化總結 1)新建測試計劃後,新增執行緒組,如圖1,線上程組下新增http請求,如圖2                          

(3)jmeter引數

今天來講下jmeter的引數化 首先老規矩,講下引數化運用的場景 1 要測試的介面,比如登陸,單點登陸,這個就跟閘道器, token之類有關係了。搞開發的朋友應該知道閘道器的作用,這個時候你就需要不同的使用者名稱去登陸,這個時候你就需要引數化的方式來讓你的一個變數在每次迭代,或者每個執行

使用Jmeter進行引數,關聯操作

今天和大家聊下使用Jmeter進行引數化即關聯操作,實現從檔案中讀取引數進行註冊,登入及抽獎的一系列操作。具體看下面的介紹吧。 1,首先在註冊介面處新增CSV Data Set Config,配置好引數資料資訊,如圖。 2,然後在註冊介面中配置引數,如圖,格式為:${name},需要用

JMeter學習引數User Defined Variables與User Parameters

偶然發現JMeter中有兩個元件(User Defined Variables與User Parameters)很相近,剛開始時我也沒注意,兩者有什麼不同。使用時卻發現兩者使用場景有些不同,現在小結一下。 相同點:二者都是進行引數化的。   一、User Defined Var

jmeter引數解析及外掛的使用

jmeter中引數解析及執行緒組外掛 聚合報告的相關指標: 1、Label: 定義的HTTP請求Name 屬性的值名稱 2、Samples: 表示這次測試中一共發出了多少個請求 3、Average: 訪問頁面的平均響應時間 4、Min: 訪問頁面的最小響應時間 5、Ma

JMeter學習引數之User Defined Variables與User Parameters

     JMeter中有兩個元件User Defined Variables(使用者定義的變數)和User Parameters(使用者引數)比較相近,看起來有些類似,使用過程中發現場景不同,總結

Jmeter使用引數以及自增計數器

測試場景:上傳XX,序號不能重複,壓測不同賬號同時併發上傳的效能 問題:序號不能重複開始使用配置檔案,不同併發每次都要手動更新序號較為繁瑣 解決方案:使用自增計數器來實現序號的不可重複上傳,修改

使用jmeter進行引數的兩種方式

一、使用函式助手進行引數化jmeter自帶一個函式助手,通過函式助手可以幫助我們做很多事情,下圖紅框中的就是函式助手點選函式助手可以看到函式助手有很多功能,可以生成很多不同資料,我一般常用的是Random和RandomString兩個,Radom會生成一個隨機的數字,這個數字

Jmeter——Jmeter引數CSV Data Set Config

一、準備引數化資料:/Users/wuxi/Documents/apache-jmeter-3.2/script/user.txt二、準備指令碼,先登入 再獲取使用者資訊引數化使用:${__thread

Jmeter引數設定

       定義        引數化的主要作用是為高併發模組新增不同使用者        在錄製的指令碼中有登陸操作時,需要輸入使用者名稱和密碼,假如系統不允許相同的使用者名稱和密碼同時登入,或者

Jmeter基礎-引數

實際測試中可能會要輸入多個引數,為了方便管理,則引入引數化,來管理輸入的資料,有這幾種方式,分別如下圖所示: 1,使用函式助手 在值的第一欄填寫引數檔案的絕對路徑,第二欄根據引數的位置輸入序號,第一列為0 2,使用使用者引數 點選下方的”新增變數

ASP.NET引數查詢

一、引數化查詢原理 在使用引數化查詢的情況下,資料庫伺服器不會將引數的內容視為SQL指令的一部份來處理,而是在資料庫完成 SQL指令的編譯後,才套用引數執行,因此就算引數中含有惡意的指令,由於已經編譯完成,就不會被資料庫所執行。 有部份的開發人員可能會認為使用引數化查詢,

Oracle 引數SQL 語句 寫法

OleDbParameter [] opGroup={new OleDbParameter(":sELEMENT_VALUE",OleDbType.VarChar),new OleDbParameter(":sFACTORY_ID",OleDbType.Integer),

Jmeter CSV 引數/檢查點/斷言

當引數的值沒有規律且量不太大時,可以使用CSV Data set config這種方法。 案例: 應用Sogou自動搜尋關鍵字: 軟體開發測試,web功能自動化測試,效能自動化測試,Selenium以及Jmeter 要求:使用Jmeter 的CSV Dat

Jmeter引數

第一種方式:利用函式助手,檔名稱必須是絕對路徑D:\dd.txt從第一列開始取數,要先0從開始設定好之後點選生成,然後複製生成好的函式字串第二種:CSV data set config配置元件裡新增CSV檔案設定檔名:要到絕對路徑檔案編碼:選擇UTF-8變數名稱:自己設定好變

Jmeter的多種引數方法

一、前置處理器-使用者引數 1.新增前置處理器-使用者引數,新增所需要的名稱以及使用者內容 2.將引數同步到請求中需要的引數值中(eg:${searchtxt}) 3.新增相應斷言及斷言結果 斷言結果 ps:注意執行緒的數量需是使用者的倍數方可

jmeterhttp請求引數

一、建立執行緒組 為什麼所有的請求都要加入執行緒組這個元件呢?不加不行嗎?答案當然是不行的。因為jmeter的所有任務都必須由執行緒處理,所有任務都必須線上程組下面建立。 二、新增HTTP請求 三、新增配置檔案(即你的引數檔案)

解決 JMeter SQL 語句引數的問題

關鍵字:開源效能測試工具  引數化當使用 JMeter 的JDBC 指令碼對資料庫進行測試時,JMeter的JDBC Request中包含的SQL語句時無法使用引數的。例如 SELECT * FROM ${table_name} 是無效的。 如果需要實現同時多個不同的使用者

Jmeter CSV 如何引數測試資料並實現自動斷言

      當我們使用Jmeter工具進行介面測試,可利用CSV Data Set Config配置元件,對測試資料進行引數化,迴圈讀取csv文件中每一行測試用例資料,來實現介面自動化。此種情況下,很多測試工程師只會人工地檢視響應結果來判斷用例是否通過。&nb