营销型网站建设域名是,佰汇康网站建设,百度推广后台登陆入口,本科自考报名的时间在性能测试领域#xff0c;JMeter已经成为测试专业人士的首选工具#xff0c;用于模拟用户行为、测量响应时间、评估系统性能。而现在大部分接口都会涉及到验签、签名、加密等操作#xff0c;为了满足特定需求#xff0c;我们需要更多的灵活性#xff0c;比如引入Python来…在性能测试领域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 hashlibimport sysimport timeimport jsondef 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 resresult 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 modulefrom unittest import TestCase, mainfrom pymeter.api.config import TestPlan, ThreadGroupWithRampUpAndHoldfrom pymeter.api.postprocessors import JsonExtractorfrom pymeter.api.reporters import HtmlReporterfrom pymeter.api.samplers import DummySampler, HttpSamplerfrom pymeter.api.timers import UniformRandomTimerclass 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结果文件。感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取