接上文《JMeter與Python的多重交響:從入門到高級(jí)應(yīng)用(上)》
在性能測(cè)試領(lǐng)域,Apache JMeter已經(jīng)成為測(cè)試專業(yè)人士的首選工具,用于模擬用戶行為、測(cè)量響應(yīng)時(shí)間、評(píng)估系統(tǒng)性能。但在某些情境下,為了滿足特定需求,我們需要更多的靈活性,比如引入Python來進(jìn)行特定操作或處理復(fù)雜邏輯。
我們看下這個(gè)界面該如何配置:
這會(huì)調(diào)用外部Python腳本,并傳入?yún)?shù)input_param。
添加一個(gè)正則表達(dá)式提取器,編寫正則,看看能不能提取到結(jié)果:
最后我們用debug sample檢測(cè)最終結(jié)果:
這樣整個(gè)流程完成了,也就可以很方便的調(diào)用外部文件做接口自動(dòng)化了。
這里再簡(jiǎn)單介紹兩種能夠處理python代碼的方案:
使用函數(shù)助手[jmeter-functions-execute-python-script-1.0.jar]鏈接:https://pan.baidu.com/s/1JrPW723es9rFbp18mNAvug?pwd=thjp 提取碼:thjp這個(gè)就直接放入到:/lib/ext 下面就行,然后重啟jmeter使用如圖:
使用BeanShell Sampler組件這個(gè)需要一定的java代碼能力,大伙可以自行看著玩,因煩不建議,前面的os process sample 舒服,也就是說,既然都要寫beanshell了,直接java代碼干就完事了,哈哈!。示例代碼,不保證能用:
import java.io.BufferedReader;import java.io.InputStreamReader;//1. 命令里的路徑改成自己腳本的路徑 String command = "/opt/homebrew/bin/python3 /Users/xxx/Code/python-mysql/gen_id.py";Runtime rt = Runtime.getRuntime();Process pr = rt.exec(command); pr.waitFor(); BufferedReader b = new BufferedReader(new InputStreamReader(pr.getInputStream()));String line = "";StringBuilder response = new StringBuilder();while ((line = b.readLine()) != null) { response.append(line);} String response_data = response.toString(); System.out.println(response_data);log.info(response_data);b.close();// 2. 定義Jmeter中引用的變量名vars.put("xxx",response_data); //把結(jié)果賦值給變量 ,方便后面調(diào)用
By the way,很多小伙伴反饋說既然用jmeter了,干嘛還往里整python代碼,不是多此一舉嘛?這里勇哥談?wù)勛约旱膸c(diǎn)愚見:
總之jmeter既然可以這樣玩,那么給到用戶也就多一種使用體驗(yàn),多一種解決問題的可能性。
本文鏈接:http://www.www897cc.com/showinfo-26-11289-0.htmlJMeter與Python的多重交響:從入門到高級(jí)應(yīng)用(下)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com