网站开发报价人天,中文域名转换英文域名,网站建设公司果动c,创造一个网站#x1f345; 点击文末小卡片 #xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 在性能测试领域#xff0c;JMeter已经成为测试专业人士的首选工具#xff0c;用于模拟用户行为、测量响应时间、评估系统性能。而现在大部分接口都会涉及到验签… 点击文末小卡片 免费获取软件测试全套资料资料在手涨薪更快在性能测试领域JMeter已经成为测试专业人士的首选工具用于模拟用户行为、测量响应时间、评估系统性能。而现在大部分接口都会涉及到验签、签名、加密等操作为了满足特定需求我们需要更多的灵活性比如引入Python来进行特定操作或处理复杂逻辑。特别是针对一些只会Python编程, 不擅长Java的在JMeter中调用Python方法有很多今天给大家先推荐几种。方法一利用beanshellRuntime.getRuntime().exec()方法Runtime.getRuntime().exec()方法是用于在 Java 应用程序中执行外部命令。它允许你调用操作系统的命令行工具或其他可执行程序。你可以将要执行的命令作为参数传递给 exec() 方法并且它会返回一个 Process 对象通过该对象你可以管理和控制外部进程的执行。需要注意的是使用 exec() 方法执行外部命令时需要格外小心以防止潜在的安全漏洞。如下示例String command cmd /c python D:\\training\\python_work\\common\\auth.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(获取到的token值response_data); b.close(); vars.put(token,response.toString()); //把结果赋值给变量 ID ,方便后面调用获取接口token解密过程是在auth.py中实现的利用 Runtime.getRuntime().exec()执行python脚本PS: 也可以利用OS Process Sampler取样器在OS Process Sampler中可以直接执行系统命令这也包括执行Python脚本以及其他乱七八糟的脚本或者文件。方法二利用JSR223 Samplerjython要在JMeter中调用Python代码也可以使用JSR223 Sampler元素来执行Python脚本操作步骤1、在https://www.jython.org/download下载jython-standaloneXXX.JAR2、放到jmeter 的lib文件夹下重启Jmeter。3、添加JSR223 Sampler 路径Thread Group SamplerJSR223 Sampler4、根据压测需求编写python脚本即可。示例该脚本用于加密登录信息 import hashlib import sys import time import json def password_srt(pubkey, password): time_str str(time.time()) sign_str str(pubkey) time_str str(password) sign hashlib.md5(sign_str.encode(utf-8)).hexdigest() res {sign: sign, pubkey: pubkey, password: password} res json.dumps(res) return res result password_srt(123456789,987654321) log.info(result) vars.put(secrity,result)方法三利用pymeter库pymeter库允许你在Python中实现类似JMeter GUI操作性能测试一样的效果。项目地址https://github.com/eldaduzman/pymeter依赖条件安装pip install pymeter使用示例unittest module from unittest import TestCase, main from pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHold from pymeter.api.postprocessors import JsonExtractor from pymeter.api.reporters import HtmlReporter from pymeter.api.samplers import DummySampler, HttpSampler from pymeter.api.timers import UniformRandomTimer class TestTestPlanClass(TestCase): def test_1(self): json_extractor JsonExtractor(variable, args.var) timer UniformRandomTimer(1000, 2000) http_sampler HttpSampler( Echo, https://postman-echo.com/get?var${__Random(0,10)}, timer, json_extractor, ) dummy_sampler DummySampler(dummy ${variable}, hi dummy) tg ThreadGroupWithRampUpAndHold( 10, 1, 60, http_sampler, dummy_sampler, nameSome Name ) html_reporter HtmlReporter() tp TestPlan(tg, html_reporter) stats tp.run() print( fduration {stats.duration_milliseconds}, fmean {stats.sample_time_mean_milliseconds}, fmin {stats.sample_time_min_milliseconds}, fmedian {stats.sample_time_median_milliseconds}, f90p {stats.sample_time_90_percentile_milliseconds}, f95p {stats.sample_time_95_percentile_milliseconds}, f99p {stats.sample_time_99_percentile_milliseconds}, fmax {stats.sample_time_max_milliseconds}, sep\t, ) self.assertLess(stats.sample_time_99_percentile_milliseconds, 2000) if __name__ __main__: main()执行后自动生成output目录并生成index.hmtl报告和.jtl结果文件。最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。