主頁 >  其他 > 一、Jmeter總結

一、Jmeter總結

2021-11-11 08:04:36 其他

一、Jmeter總結
1.回應結果亂碼問題
(1)方案一
在這里插入圖片描述
修改如下圖:
在這里插入圖片描述

(2)方案二
在這里插入圖片描述

2.修改默認語言
在這里插入圖片描述

3.介面回傳資料中文為Unicode(萬國碼/統一碼)轉中文
在這里插入圖片描述

(1)步驟如下
1.添加一個后置處理器(BeanShell PostProcessor)
2.撰寫轉譯方法
3.保存,運行
在這里插入圖片描述
在這里插入圖片描述

(2)代碼如下
String s2=new String(prev.getResponseData(),“UTF-8”);
//---------------一下步驟為轉碼程序---------------
char aChar;
int len= s2.length();
StringBuffer outBuffer=new StringBuffer(len);
for(int x =0; x <len;){
aChar= s2.charAt(x++);
if(aChar==’\’){
aChar= s2.charAt(x++);
if(aChar==‘u’){
int value =0;
for(int i=0;i<4;i++){
aChar= s2.charAt(x++);
switch(aChar){
case’0’:
case’1’:
case’2’:
case’3’:
case’4’:
case’5’:
case’6’:
case’7’:
case’8’:
case’9’:
value=(value <<4)+aChar-‘0’;
break;
case’a’:
case’b’:
case’c’:
case’d’:
case’e’:
case’f’:
value=(value <<4)+10+aChar-‘a’;
break;
case’A’:
case’B’:
case’C’:
case’D’:
case’E’:
case’F’:
value=(value <<4)+10+aChar-‘A’;
break;
default:
throw new IllegalArgumentException(
“Malformed \uxxxx encoding.”);}}
outBuffer.append((char) value);}else{
if(aChar==‘t’)
aChar=’\t’;
else if(aChar==‘r’)
aChar=’\r’;
else if(aChar==‘n’)
aChar=’\n’;
else if(aChar==‘f’)
aChar=’\f’;
outBuffer.append(aChar);}}else
outBuffer.append(aChar);}
//-----------------以上內容為轉碼程序---------------------------
//將轉成中文的回應結果在查看結果樹中顯示

    prev.setResponseData(outBuffer.toString());

————————————————
原文鏈接:https://blog.csdn.net/weixin_42675206/article/details/81064257
4.cookie管理器保存登錄后的cookie資訊(跳過登錄程序,測驗后續介面)
把這個表里的所有資料的名稱、域名、路徑、值都一一寫到cookie管理器里,如下圖jmeter的這個位置
在這里插入圖片描述

注意:名稱、值、域 必填,路徑可不填寫
(1)進階:批量獲取cookie資訊,跨執行緒組傳遞
1.設定組態檔使Cookie管理器保存cookie資訊,
修改apache-jmeter-5.2.1/bin/jmeter.properties檔案,把CookieManager.save.cookies設定為true,并去掉前面的注釋#號,如下圖所示:
在這里插入圖片描述

修改完成后保存,退出,并重啟jmeter,
2.在除錯取樣器和請求中查看具體的cookie資訊
在執行緒組中添加HTTP Cookie 管理器,運行測驗計劃后,HTTP Cookie 管理器會自動存盤這些cookie,變數名稱為COOKIE_XXX,XXX對應的是cookie的名稱,可以添加【除錯取樣器】來查看自動存盤的cookie值,如下圖所示:
下圖中有兩個cookie值分別為:COOKIE_z92_lastvisit何COOKIE_z92_visitor
在這里插入圖片描述

這里要注意一下,有時候你會發現這里的cookie不全,所以比較保險的做法下,進入第一個請求中查看request body中的cookie值,如下圖所示:下圖中有三個cookie值分別為:z92_visitor和z92_lastvisit以及csrf_token三個值,這里比前者多了一個cookie值,
在這里插入圖片描述

3.設定cookie為全域變數
在BeanShell后置處理程式中使用__setProperty()函式將COOKIE_XXXX設定為全域變數,如下圖所示:

在這里插入圖片描述

4獲取并存盤Cookie
在HTTP Cookie管理器中通過__P()函式獲取全域變數Cookie,并加入到Cookie管理器中,注意名稱和在請求中的cookie名稱保持一致,如下圖的z92_visitor和z92_lastvisit以及csrf_token三個值,
在這里插入圖片描述

5.jmeter腳本錄制
①創建執行緒組-創建HTTP代理服務器-修改埠號
在這里插入圖片描述
在這里插入圖片描述

②添加排除模式
(懶得手打的跳轉 復制粘貼:https://blog.csdn.net/qq_42293487/article/details/83822604)
在這里插入圖片描述

③查看本機IP(命令框輸入:ipconfig)記住ip地址
在這里插入圖片描述

④配置瀏覽器代理
在代理框輸入第三步記住的ip地址,埠號填寫8888,與jmeter修改的埠號保持一致(因為瀏覽器不同,所以入口不一樣,但是設定的步驟是一樣的)
在這里插入圖片描述

第五步,點擊啟動,啟動之后去剛剛的瀏覽器中操作你要抓包的網站就可以了,(必須要點擊啟動以后,你的瀏覽器才能訪問網路)
在這里插入圖片描述

原文鏈接:https://blog.csdn.net/qq_42293487/article/details/88105978
6.windows下Jmeter壓測埠占用問題
百度查找有的是解決方法

https://blog.csdn.net/weixin_43757847/article/details/88188091?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
7.參考外部檔案
(1)參考jar包
一、測驗計劃中添加目錄或jar包到Classpath
  操作:測驗計劃->添加目錄或jar包到Classpath–>瀏覽匯入jar包
  優點:操作便捷
  缺點:1)可移植性差;2)jar包較多時不好管理
在這里插入圖片描述

二、將需要參考的jar包放在jmeter的extras目錄下
  操作:將jar包放在jmeter安裝目錄apache-jmeter-5.0\extras下
  優點:比方法1可移植性強一點
缺點:有些jar包放在extras下加載不到,需要放在apache-jmeter-5.0\lib目錄下才可以,導致管理比較混亂
在這里插入圖片描述

三、通過jmeter.properties設定依賴路徑
  操作:1)jmeter目錄下新建一個存放第三方jar包的檔案夾third_dependency,將第三方jar包放進去
在這里插入圖片描述

2)apache-jmeter-5.0\bin目錄下找到jmeter.properties設定依賴路徑
    檔案中添加一行:plugin_dependency_paths= …/third_dependency;
在這里插入圖片描述

優點:可移植性強,jar包管理方便

來自于https://www.cnblogs.com/Clairewang/p/12550965.html

(2)參考java檔案
添加Bean Shell組件
在bean shel中通過source(“代碼路徑”)方法引入java,然后呼叫方法和java一樣,new一個class,再呼叫里面的add 方法,
在這里插入圖片描述

代碼:
//參考外部的Java檔案,要用絕對路徑
source(“D:\xingneng_work_file\work_file\test_add.java”);

//new生成物件并呼叫函式
int res = new Myclass().add(1,2);

//生成結果賦值給vars
vars.put(“add”,res.toString());

運行結果:
在這里插入圖片描述

(3)參考class檔案
Bean Shell使用代碼如下:
  用addClassPath(“D:\”)方法引入 class檔案,再用import匯入包及類,然后就可以像java一樣呼叫了
在這里插入圖片描述

運行結果:
在這里插入圖片描述
8.json斷言及json提取器的使用
(1)json斷言
該組件使您可以執行JSON檔案的驗證,
首先,它將決議JSON,如果資料不是JSON則失敗,
其次,它將使用https://github.com/json-path/JsonPath中的語法搜索指定的路徑,如果找不到該路徑,它將失敗,
第三,如果在檔案中找到JSON路徑,并要求針對期望值進行驗證,它將執行驗證,對于null值,在GUI中有一個特殊的復選框,請注意,如果路徑將回傳陣列物件,則將對其進行迭代,并且如果找到期望值,則斷言將成功,要驗證空陣列,請使用[]字串,另外,如果patch將回傳字典物件,則在比較之前將其轉換為字串,

什么是JSON
JSON(JavaScript Object Notation,JavaScript物件表示法)是一種輕量級的資料交換格式,JSON容易理解,便于閱讀和撰寫;同時計算機也易于決議和生成,所以JSON有廣泛的應用,
鍵值對的形式存在:
在這里插入圖片描述

(2)JSON斷言分析:
回傳的資料必須的JSON格式,否則會決議失敗,
他將JsonPath語法搜索指定的路徑,找不到路徑,則會失敗,http://goessner.net/articles/JsonPath/ 這個網址去學習JSON語法,
JSON是鍵值對形式存在,通過路徑找到鍵,可以對該鍵的值進行校驗,
如果鍵的值為null,GUI中有復選框(Expect null),勾選上則表示以null作為預期值,
如果路徑找到的陣列物件(在串列頁中比較常見這種情況),則會對陣列中的資料進行輪詢,如果其中有一個值和預期值匹配,那么斷言也是成功的,
回傳的是字典物件,則需要轉為字串后再進行比較,

(3)JSON斷言界面引數說明:
在這里插入圖片描述

名稱:節點的名稱,顯示在查看結果樹中,自己根據實際情況定義,
注釋:對該節點進行注釋,
斷言存在JSON路徑:斷言JSON元素的路徑,
附加斷言值:如果要使斷言具有某個值,把這個值勾選上,如果寫了(3)JSON元素的路徑,要把這個值勾選上,
匹配為正則運算式:如果要使用正則表示式,選中該復選框,
預期值:JSON元素路徑對應的值,
反轉斷言:就是否的意思,即如果符合就失敗,

(4)json斷言詳細說明
在這里插入圖片描述

可以直接在查看結果樹中進行JSON語法的測驗,測驗ok了再直接放在JSON斷言中,
$ 表示跟節點,
[] 表示陣列,0表示第一個;$[0] 表示跟節點后的第一個物件,
resultcode 即key,這里要獲取resultcode的值,所以填寫resultcode,
在這里插入圖片描述

(5)舉例:
取第一個id的值,$.data[0].id

在這里插入圖片描述

(1)json提取器
用法說明
此提取器用于提取請求回傳結果中的某個值或者某一組值,用法比正則運算式要簡單,標準寫法為$.key,其中key為回傳結果map中的一個鍵,如果是多層則繼續用.key進行即可,如果遇到key的value值為一個List,則使用.key[n],其中n為list中元素的編號,
原文鏈接:https://blog.csdn.net/df0128/article/details/86535117
在這里插入圖片描述

(2)Json提取器語法說明

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

地址:https://blog.csdn.net/df0128/article/details/86535117
9.檔案上傳
(1)創建執行緒組,添加各類組件
這個就不用說了,由于需要登錄,所以我加了一個資訊頭管理器,把token寫在里面,
在這里插入圖片描述

(2)檔案上傳
有介面檔案的話,那就對著檔案寫,沒api檔案,就自己抓包看了,(注意:我在執行緒組下面加了http資訊頭管理器是因為我下面的“核對資料”和“預覽發送”兩個步驟需要這個Content-Type,單單的上傳檔案是不需要這個組件的,加了反而可能會報錯)
在這里插入圖片描述
在這里插入圖片描述

然后點擊高級設定,客戶端實作型別選擇JAVA
在這里插入圖片描述

(3)查看結果樹
運行一下看一下結果樹的反饋(下面兩個報錯可以忽略,與本主題無關,純粹是懶所以沒改),
在這里插入圖片描述

10.檔案下載
(1)jmeter檔案下載步驟:
首先檔案下載介面請求資訊填寫完全
然后①右鍵點擊執行緒組->添加->Sampler->Bean Shell Sampler,②或者右鍵點擊執行緒組->添加->后置處理器>Bean Shell Post Processor,本次以Bean Shell Sampler為例,如下圖
在這里插入圖片描述

輸入腳本:
import java.io.*;
byte[] result = prev.getResponseData(); //這個是獲取到請求回傳的資料,prev是獲取上個請求的回傳
String file_name = “e:\BaiDuTuPian.jpg”; //代表存放檔案的位置和檔案名
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
————————————————
原文鏈接:https://blog.csdn.net/sinat_28317385/article/details/108359217
在這里插入圖片描述

11.函式的使用
(1)加密函式
①使用內置函式__MD5進行加密
使用 ${__MD5(w12345678,)} 進行MD5加密(32位小寫)
在這里插入圖片描述

使用KaTeX parse error: Expected group after '_' at position 2: {_?_uppercase(,)} …{__uppercase(${__MD5(w12345678,)},)}

②使用內置函式__digest進行加密
使用${__digest(MD5,w12345678,true,)} 進行MD5加密(默認為小寫,第四個引數傳true可直接回傳大寫)
在這里插入圖片描述

引數說明:
Digest algorithm(必填):加密演算法,支持:MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512(其它jmeter自身不支持的加密演算法可使用“7.參考外部檔案的方式解決”),
String to be hashed(必填):需要加密的字串,
Salt to be used for hashing (optional):用于加密的鹽,
Upper case result, defaults to false (optional):大寫結果,默認為false,
Name of variable in which to store the result (optional):存盤結果的變數的名稱,

③使用內置方法加密
Jmeter 4.0 以上版本已有自帶的MD5加密方法
1)添加 BeanShell Sampler,代碼如下:
import org.apache.commons.codec.digest.DigestUtils;
String str = “w12345678”;
String sign = DigestUtils.md5Hex(str);
vars.put(“pw”,sign.toUpperCase());
(2)字串拼接
字串拼接步驟:
1.打開jmeter上的函式助手,選擇—V功能,如下圖:
2.把要拼接的值寫進去:固定字串+取出來的引數(這里的空格為固定字串內的空格,不需要空格的可以去掉)
3.點擊生成,就把生成的字串放到請求頭中去就行了,只有這些引數沒有其他的話,需要把后面的逗號去掉,這樣再運行就可以了
在這里插入圖片描述
在這里插入圖片描述

(3)設定全域變數(跨執行緒組傳遞變數)
①打開函式助手
在這里插入圖片描述

輸入需要的值然后點擊生成按鈕,或者直接使用KaTeX parse error: Expected group after '_' at position 2: {_?_setProperty(ne…{userid},)}的格式

②添加BeanShell 取樣器或者BeanShell PostProcessor后置處理器,設定區域變數userid和token為全域變數newuserid和newtoken
在這里插入圖片描述

③呼叫方式 ${__property(變數名)}
在這里插入圖片描述

(4)時間戳
在使用jmeter做介面測驗的時候,經常會要用到日期這種函式,讓系統自動生成一些格式化的資料,方便介面測驗,jmeter自身就帶有時間戳的函式

1、__time:獲取時間戳、格式化時間
(1)、KaTeX parse error: Expected group after '_' at position 2: {_?_time(yyyy-MM-d…{__time(,)}:默認該公式精確到毫秒級別, 13位數 1527822855323
(3)、KaTeX parse error: Expected group after '_' at position 2: {_?_time(/1000,)}:…{__time(yyyy-MM-dd,)}:該公式格式化生成的時間為:2018-10-26
(5)、${__time(yyMMdd,)}:該公式格式化生成的時間為:181026
在這里插入圖片描述

2、__timeShift(格式,日期,移位,語言環境,變數)函式,可以將時間進行移位,對當前時間增加或者減少對應的時間
(1)、格式 - 將顯示創建日期的格式,如果該值未被傳遞,則以毫秒為單位創建日期,
(2)、日期 - 這是日期值,用于如果要通過添加或減去特定天數,小時或分鐘來創建特定日期的情況,如果引數值未通過,則使用當前日期,
(3)、移位 - 表示要從日期引數的值中添加或減去多少天,幾小時或幾分鐘,如果該值未被傳遞,則不會將任何值減去或添加到日期引數的值中,
“P1DT2H4M5S” 決議為“添加1天2小時4分鐘5秒”
“P-6H3M”決議為“-6小時+3分鐘”
“-P6H3M”決議為“-6小時-3分鐘”
“-P-6H + 3M”決議為“+6小時和-3分鐘”
(4)、區域設定 - 設定創建日期的顯示語言,不是必填項
(5)、變數 - 創建日期的值將被分配給的變數的名稱,不是必填項
在這里插入圖片描述

e.g.:${__timeShift(yy-MM-dd,2018-10-26,P2D,,)}這種回傳的時間就是2018-10-28

3、__randomDate(格式,開始時間,結束時間):時間段內隨機獲取時間
(1)格式默認為yyyy-MM-dd
在這里插入圖片描述

e.g.😒{__randomDate(yyyy-MM-dd,2018-10-01,2018-10-30)},這種函式就會自動回傳20181001-20181030之間的一個日期

(5)jmeter隨機取用戶自定義變數的值
${__RandomFromMultipleVars(用戶自定義的變數1|用戶自定義的變數2)}

用法一:可以在beanshell中將取到的隨機值賦給變數s,在參考時直接參考ss即可
s=${__RandomFromMultipleVars(P1|P2,)};
vars.put(“ss”,s.toString());

用法二:在請求體或其他直接為變數賦值的地方,直接使用${__RandomFromMultipleVars(用戶自定義的變數1|用戶自定義的變數2)}
轉載于:https://www.cnblogs.com/applezxy/p/11124184.html

(6)自增函式和計數器
"_counter"函式
  功能:這個函式是一個計數器,用于統計函式的使用次數,它從1開始,每呼叫這個函式一次它就會自動加1,它有兩個引數,第一個引數是布爾型的, 只能設定成“TRUE”或者“FALSE”,如果是TRUE,那么每個用戶有自己的計數器,可以用于統計每個執行緒歌執行了多少次,如果是FALSE,那就 使用全域計數器,可以統計出這次測驗共運行了多少次,第二個引數是“函式名稱”
  格式:${__counter(FALSE,test)}
  使用:我們將“_counter”函式生成的引數復制到某個引數下面,如果為TRUE格式,則每個執行緒各自統計,最大數為回圈數,如果為FALSE,則所有執行緒一起統計,最大數為執行緒數乘以回圈數

計數器
Jmeter計數器實作自增功能
如果需要參考的資料量較大,且要求不能重復或者需要自增,那么可以使用計數器來實作
如:新增功能,要求名稱不能重復

1.新增計數器
計數器:允許用戶創建一個在執行緒組之內都可以被參考的計數器,
計數器允許用戶配置一個起點,一個最大值,增量數,回圈到最大值,然后重新開始,繼續這樣,直到測驗結束,
在這里插入圖片描述
在這里插入圖片描述

初始值(Starting value):給定計數器的起始值、初始值,第一次迭代時,會把該值賦給計數器
遞增(Increment):每次迭代后,給計數器增加的值

最大值(Maximum value):計數器的最大值,如果超過最大值,重新設定為初始值(Starting value),默認的最大值為Long.MAX_VALUE,2^63-1(如果持續壓測,建議最好不要設定最大值)

數字格式(Number format):可選格式,比如000,格式化為001,002;默認格式為Long.toString(),但是默認格式下,還是可以當作數字使用

參考名稱(Reference Name):用于控制在其它元素中參考該值,形式:${reference_name}

與每用戶獨立的跟蹤計數器(Track Counter Independently for each User):全域的計數器,如果不勾選,即全域的,比如用戶#1 獲取值為1,用戶#2獲取值還是為1;
如果勾選,即獨立的,則每個用戶有自己的值:比如用戶#1 獲取值為1,用戶#2獲取值為2,

每次迭代復原計數器(Reset counter on each Thread Group Iteration):可選,僅勾選與每用戶獨立的跟蹤計數器時可用;
如果勾選,則每次執行緒組迭代,都會重置計數器的值,當執行緒組是在一個回圈控制器內時比較有用,

2.參考計數器
在這里插入圖片描述

12.控制器
https://www.cnblogs.com/Zfc-Cjk/p/8466136.html 詳解
①回圈控制器
在這里插入圖片描述

②ForEach控制器
在這里插入圖片描述
在這里插入圖片描述

這樣就再去執行這個控制器就會執行兩遍,也可以截取其他集合的變數作為引數來遍歷,

③僅一次控制器
在這里插入圖片描述

④事務控制器
在這里插入圖片描述

可以理解為一個流程場景,例如發布流程、交易等,需先新建、編輯、提交審核、發布,所有的介面都成功才能發布成功,將流程場景涉及到的所有介面放到一個事務里即可,
特別說明:添加事務后在聚合報告中請求按照事務進行統計,事務中某一個請求報錯即整個事務報錯,
⑤IF控制器
在這里插入圖片描述

判斷填寫的條件是否成立,成立則執行控制器下的組件
⑥Switch控制器 (這個理論上是不是也可以里面加其他控制器)
在這里插入圖片描述

⑦吞吐量控制器
在這里插入圖片描述

作用:控制其下的子節點的執行次數與負載比例分配,別被名字迷惑了,跟吞吐量沒任何關系,也有兩種方式:
Total Executions:設定運行次數,整個測驗計劃中總計執行次數
Percent Executions:設定運行比例(1~100之間),整個測驗計劃中總計執行百分比
Throughtput: 設計的數值
Per User: 依據網上的說明在選擇Total Executions時,勾選時會在每個執行緒中執行的次數,但在3.0版本中嘗試使用無效
⑧隨機控制器
在這里插入圖片描述

⑨隨機順序控制器
在這里插入圖片描述

其他控制器 先看頂部網址!!!
13.檔案大小及檔案md5值獲取
步驟:
①參考jar包(jar包在該檔案同級目錄)
jar包名稱: commons-codec-1.15.jar
在這里插入圖片描述

②添加前置處理器→BeanShell PreProcessor
在這里插入圖片描述

③參考
在這里插入圖片描述

④查看運行結果
在這里插入圖片描述

14.jmeter除錯工具(Debug Sampler)的使用
在這里插入圖片描述

使用Jmeter開發腳本時,難免需要除錯,這時可以使用Jmeter的Debug Sampler,它有三個選項:JMeter properties,JMeter variables,System properties:
在這里插入圖片描述

1、JMeter properties和System properties:通常都選false,這兩個就是JMeter和系統的屬性,在Jmeter的bin的jmeter.properties中定義,一般都不會變,
2、JMeter variables:這個是我們自已定義的變數,定義的方式有如下這些:
  a) 選中測驗計劃(Test plan),在右邊的面板上添加User Defined Variables
  b) 選中執行緒組,右鍵選擇 配置元件( config element)–>User Defined Variables
  c) 通過后置處理器生成的變數
  d)使用csv引數化的變數
在這里插入圖片描述

15.jmeter-CSV引數化
①創建CSV檔案
創建.csv檔案,用戶名和密碼中間以逗號隔開
在這里插入圖片描述

② 在執行緒組中添加并配置CSV Data Set Config
1.添加CSV Data Set Config

在這里插入圖片描述

2.配置CSV Data Set Config(檔案地址可以寫相對路徑,“./為bin目錄下”)
在這里插入圖片描述

?Filename: 指保存資訊的檔案目錄,可以相對或者絕對路徑,否則會在jmeter日志檔案(jmeter.log目錄位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系統找不到指定檔案,運行腳本后,登錄失敗,
?File encoding: 保持默認,默認為ANSI
?Variable Names: 給csv檔案中各列起個名字(有多列時,用英文逗號隔開列名)便于后面參考
?Delimiter:與 .csv檔案的分隔符保持一致,如檔案中使用的是逗號分隔,則填寫逗號;如使用的是TAB,則填寫\t;
?Allow quoted data? :是否允許參考資料,—這個目前還未弄明白,設定成True或者False都能正常參考資料,
?Recycle on EOF?:到了檔案尾是否回圈,True—繼續從檔案第一行開始讀取,False—不再回圈
?Stop thread on EOF? :到了檔案尾是否停止執行緒,True—停止,False—不停止,注:當Recycle on EOF設定為True時,此項設定無效,
?Sharing mode:共享模式,All threads –所有執行緒,Current thread group—當前執行緒組,Current thread—當前執行緒,
在這里插入圖片描述

All threads:計劃中所有執行緒,假如說有執行緒1到執行緒n (n>1),執行緒1取了一次值后,執行緒2取值時,取到的是csv檔案中的下一行,即與執行緒1取的不是同一行,
2 Current thread group:當前執行緒組,假設有執行緒組A、執行緒組B,A組內有執行緒A1到執行緒An,執行緒組B內有執行緒B1到執行緒Bn,取之情況是:執行緒A1取到了第1行,執行緒A2取第2行,現在B1取第1行,執行緒B2取第2行,
2 Current thread:當前執行緒,假設測驗計劃內有執行緒1到執行緒n (n>1),則執行緒1取了第1行,執行緒2也取第1行,

③參考csv檔案中的資料
1.找到需要傳遞引數的HTTP請求
2.將具體值改為變數參考,參考變數:${變數名}
在這里插入圖片描述

④讀取的csv資料中文亂碼問題
將資料存盤到txt中,另存為帶有bom的utf-8格式,然后修改檔案后綴為csv即可

16.jmeter-回傳結果生成CSV檔案
(1)步驟
①本次為方便演示故添加csv資料檔案設定組件,實際場景應添加JSON提取器,存盤提取到的回傳資料,
在這里插入圖片描述

CSV檔案使用記事本或Notepad++打開,列之間實際是英文“,”表示,此處需要記住,
CSV引數設定參考“標題15”

②添加http請求,在請求下添加BeanShell PostProcessor
在這里插入圖片描述

代如下碼:
FileWriter fstream = new FileWriter("./test01/444.csv",true); //tuer為寫入,不填寫默認false為清除
BufferedWriter out = new BufferedWriter(fstream);

//String logo = vars.get(“name”);
//logo = logo.replaceAll(",",""); 此處注釋內容為引數中有多余的“,”時,將逗號轉為空字符或其內容,以免檔案列錯位
//vars.put(“logo”,logo);

out.write(vars.get(“name”)); //寫入name的值 注意此處通過get只能調取變數,且直接填寫變數名稱!
out.write(","); //寫入英文逗號,csv列之間用逗號分隔
out.write(" s e x " ) ; / / 直 接 寫 入 字 符 或 變 量 , 此 時 變 量 需 要 {sex}"); //直接寫入字符或變數,此時變數需要 sex");//{}參考
out.write(",");
out.write(vars.get(“age”));
out.write(System.getProperty(“line.separator”)); //換行
//out.write("\n"); 寫入“\n”也可實作換行

out.close();
fstream.close();

③運行結果

在這里插入圖片描述

④思考1?
是否可先清除模式打開檔案,寫入變數的標題,在介面回傳時再次用寫入模式打開檔案錄入資料,從而達到每次啟動自動清除檔案內容的目的,
在這里插入圖片描述

結果:
在這里插入圖片描述

思考2?
多個請求的回傳引數寫入同一個檔案

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355307.html

標籤:其他

上一篇:Python爬蟲實戰,requests模塊,Python實作抓取微博評論

下一篇:httprunner2.5.7引數化三種方式

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more