jmeter執(zhí)行python腳本的實(shí)現(xiàn)示例
概要
本文主要介紹一個(gè)通過(guò)jmeter執(zhí)行python腳本的測(cè)試場(chǎng)景。主要過(guò)程如下:
- 在jmeter中設(shè)置參數(shù);
- 通過(guò)jmeter修改py模板文件,并創(chuàng)建后續(xù)需執(zhí)行的py腳本;
- 通過(guò)jmeter執(zhí)行py腳本文件,獲得py文件的執(zhí)行輸出結(jié)果,并設(shè)置為變量;
- 使用變量進(jìn)行后續(xù)測(cè)試。
提示:以下為本篇文章正文內(nèi)容,案例僅供參考。
一、環(huán)境準(zhǔn)備
1. 測(cè)試工具
jmeter、python,與版本無(wú)關(guān),任意版本均可。
2. 測(cè)試資源
py模板文件:
1)自定義需要在py模板文件中修改的參數(shù),比如:我們想在jmeter中修改py腳本中某些變量的初始值,我們可以在采用特殊標(biāo)記[變量名]
的方式標(biāo)記其為可替換變量;
2)使用print()方法打印輸出目標(biāo)參數(shù)。也可以采用其他方法,比如將多個(gè)變量值寫(xiě)入到csv文件中,后續(xù)可以使用csv文件進(jìn)行參數(shù)化。
圖-變量設(shè)置:[times]、[modelName]、[modelType]
圖-輸出設(shè)置:print(filepath)
二、實(shí)現(xiàn)過(guò)程
1. 在jmeter中設(shè)置參數(shù)
如圖,可以選擇添加“前置處理器>>用戶參數(shù)”,用于設(shè)置相關(guān)變量的初始值;
2. 通過(guò)jmeter修改py模板
添加“取樣器>>BeanShell取樣器”,編寫(xiě)讀取文件、寫(xiě)入文件代碼。主要思路:讀取模板文件內(nèi)容,替換目標(biāo)字符后,寫(xiě)入到新文件中;
// 模板文件位置 String read_path = vars.get("dir") + File.separator + "files\\mkxml\\template_demo.py"; // 輸出文件位置 String write_path = vars.get("dir") + File.separator + "files\\mkxml\\demo.py"; // 讀取模板文件內(nèi)容 StringBuffer res = new StringBuffer(); String line = null; File read_file = new File(read_path); BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(read_file), "UTF-8")); while ((line = reader.readLine()) != null) { res.append(line + "\n"); } reader.close(); // 處理模板內(nèi)容,替換相關(guān)參數(shù) String content = res.toString(); content = content.replace("[times]", vars.get("times")); content = content.replace("[modelName]", vars.get("modelName")); content = content.replace("[modelType]", vars.get("modelType")); // 寫(xiě)入內(nèi)容到輸出文件位置 File write_file = new File(write_path); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(write_file), "UTF-8")); writer.write(content); writer.flush(); writer.close();
3. 通過(guò)jmeter執(zhí)行py腳本
添加“取樣器>>BeanShell取樣器”,通過(guò)cmd命令執(zhí)行py腳本,并獲得窗口輸出信息;
// 以cmd命令行方式調(diào)用py腳本,&&為多組命令連接符 String cmd = "cmd /c cd /d "+ vars.get("dir") + File.separator + "files\\mkxml && python demo.py"; Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(cmd); pr.waitFor(); BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = ""; StringBuilder response = new StringBuilder(); while((line = br.readLine()) != null) { response.append(line); } br.close(); // 設(shè)置成可在jmeter中使用的變量,filepath為目標(biāo)XML文件所在位置 vars.put("filepath", response.toString());
4. 使用獲得的輸出信息
后續(xù)需要使用輸出變量時(shí),可以通過(guò)${變量名}的形式進(jìn)行參數(shù)化。
三、運(yùn)行調(diào)試
添加“后置處理器>>調(diào)試后置處理程序”及“監(jiān)聽(tīng)器>>察看結(jié)果樹(shù)”,啟動(dòng)腳本運(yùn)行。
1. 運(yùn)行前
模板文件;
2. 運(yùn)行后
1)新建的py文件,xml文件;
2)察看結(jié)果樹(shù)的調(diào)試結(jié)果;
3)執(zhí)行py腳本后生成的文件內(nèi)容。
到此這篇關(guān)于jmeter執(zhí)行python腳本的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)jmeter執(zhí)行python腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python圖形用戶界面與游戲開(kāi)發(fā)實(shí)例詳解
GUI是圖形用戶界面的縮寫(xiě),圖形化的用戶界面對(duì)使用過(guò)計(jì)算機(jī)的人來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Python圖形用戶界面與游戲開(kāi)發(fā)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-0911個(gè)Python3字典內(nèi)置方法大全與示例匯總
這篇文章主要給大家介紹了11個(gè)Python3字典內(nèi)置方法大全與示例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05python 順時(shí)針打印矩陣的超簡(jiǎn)潔代碼
今天小編就為大家分享一篇python 順時(shí)針打印矩陣的超簡(jiǎn)潔代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11從DataFrame中提取出Series或DataFrame對(duì)象的方法
今天小編就為大家分享一篇從DataFrame中提取出Series或DataFrame對(duì)象的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11