c 執行緒中更新ui Jmeter執行緒組間傳遞引數

2021-10-13 18:33:38 字數 1853 閱讀 5202

現在做測試和以前不太一樣了,以前只要站在乙個使用者的角度做端到端的ui測試就可以了,現在不會做介面測試,出去都不好意思和別人打招呼。那提到介面測試,就不得不提一下介面測試利器jmeter,大家也都知道,jmeter是基於執行緒來跑介面甚至壓力測試的,所以在使用中會有乙個執行緒組的概念,同乙個執行緒組下面是可以共享引數的,那換句話來說,不同執行緒組直接就無法直接共享引數,這樣對我們的使用是非常不便的。

大家可以想象乙個場景,假設我們在測試乙個購物車程式,而加東西進購物車之前,我們需要先登入。在正常的場景下,我們的登入狀態可以保持一段時間,不用每次新增購物車之前都登陸一下,在這種情況下,我們把登入和新增購物車寫到兩個執行緒組裡,然後問題就來了,兩個執行緒組直接無法直接共享引數,那我們怎麼來進行引數的傳遞呢?

在jmeter中,除了基本變數之外,還有一種,是它本身的屬性,property,我們可以借助屬性來完成執行緒組間的變數傳遞。

接下來我們來實現一下。

首先,我們需要新增兩個執行緒組與檢視結果樹

然後我們新增乙個dummy sample,讓它返回乙個json串:

"name": "中國",

"province": [{

"name": "黑龍江",

"cities": {

"city": ["哈爾濱", "大慶"]

"name": "廣東",

"cities": {

"city": ["廣州", "深圳", "珠海"]

"name": "台灣",

"cities": {

"city": ["台北", "高雄"]

"name": "新疆",

"cities": {

"city": ["烏魯木齊"]

我們在dummy sample之後新增乙個json後置提取,將省提取出來 $.province[0].name

然後,我們開始實施執行緒組間引數傳遞,將提取出來的引數新增進jmeter的屬性,在這,我們需要引入beanshell呼叫__setproperty 自帶函式來實現新增屬性的操作

加乙個debug除錯,開啟jmeter property除錯,執行一下,在檢視結果樹中看到,提取出來的結果以及被成功賦給了jmeter 屬性:

更新一下執行緒組a中的提取$.province[2].name

希望可以幫助到大家!我愛學習,學習使我快樂!

作  者:testfan chris

C 中跨執行緒更新UI

出處 c winform程式設計中,跨執行緒直接更新ui控制項的做法是不正確的,會時常出現 執行緒間操作無效 從不是建立控制項的執行緒訪問它 的異常。處理跨執行緒更新winform ui控制項常用的方法有4種 1.通過ui執行緒的synchronizationcontext的post send方法更...

C 執行緒中更新介面控制項

在我們開發軟體時經常會需要跟新介面上的某個控制項來顯示相關的資訊。當我們的介面需要在程式執行中不斷更新資料時,當乙個textbox的資料需要變化時,為了讓程式執行中不出現介面 卡死的現像,最好的方法就是 多執行緒來解決 乙個主線程來 建立介面,使用乙個子執行緒來執行程式並 更新主介面,這樣就不會出現...

工作執行緒中更新UI

在工作執行緒中更新ui的四種方法 1.activity.runonuithread runable 2.view.post runable 3.view.postdelay runable 4.handler更新 android實現view更新的兩組方法 1.invalidate ui執行緒中使用 ...