了解 JMeter 中的 ctx 和 prev 对象的常用方法
“各位测试童鞋们,好久不见,甚是想念,今天来点简单的jmeter测试趣事****”
ctx
对象(JMeterContext)
ctx
对象是 JMeter 中最强大的内置变量之一。它代表 JMeter 的上下文,提供对 JMeter 引擎、取样器、线程等的读写访问。在 JMeter 内部,ctx
映射为 org.apache.jmeter.threads.JMeterContext
类。由于 JMeterContext 不具有线程安全性,故仅适用于在单线程中使用。
以下是一些常用方法:
-
getCurrentSampler()
: 获取当前取样器。Sampler sampler = ctx.getCurrentSampler() log.info("当前取样器名称: " + sampler.getName())
-
getEngine()
: 获取 JMeter 引擎。StandardJMeterEngine engine = ctx.getEngine() log.info("JMeter 引擎: " + engine)
-
getPreviousResult()
: 获取上一个取样器的结果。SampleResult previousResult = ctx.getPreviousResult() log.info("上一个取样器的响应时间: " + previousResult.getTime())
-
getThread()
: 获取当前线程。JMeterThread thread = ctx.getThread() log.info("当前线程名称: " + thread.getThreadName())
-
getVariables()
: 获取当前线程的 JMeter 变量。JMeterVariables variables = ctx.getVariables() log.info("当前线程的变量: " + variables)
prev
对象(SampleResult)
prev
对象是SampleResult
类的一个实例,它是一个对象,可以存储上一个请求(或者说上一个取样器)的结果信息。prev
变量的作用域是当前线程组,并且只能在后置处理器(PostProcessor)或断言(Assertion)中使用。
-
getSampleLabel()
: 获取取样器标签。String label = prev.getSampleLabel() log.info("取样器标签: " + label)
-
getResponseData()
: 获取响应数据。byte[] responseData = prev.getResponseData() log.info("响应数据: " + new String(responseData))
-
getResponseCode()
: 获取响应代码。String responseCode = prev.getResponseCode() log.info("响应代码: " + responseCode)
-
getTime()
: 获取响应时间。long time = prev.getTime() log.info("响应时间: " + time + " ms")
-
getURL()
: 获取请求的 URL。URL url = prev.getURL() log.info("请求的 URL: " + url)
总结
以上就是勇哥今天为各位小伙伴准备的内容,如果你想了解更多关于Python自动化测试的知识和技巧,欢迎关注我:公众号\博客\CSDN\B站:测试玩家勇哥
;我会不定期地分享更多的精彩内容。感谢你的阅读和支持!
题外话,勇哥打算把新建的技术交流群,打造成一个活跃的高质量技术群。工作中遇到的技术问题,都可以在里面咨询大家,还有工作内推的机会。有兴趣的小伙伴,欢迎加我(记得备注是进群还是报名学习)
勇哥,10年落魄测试老司机,技术栈偏python,工作之余为粉丝进行简历修改、面试辅导、模拟面试、资料分享、一对一自动化测试教学辅导等副业发展。目前已服务十多位小伙伴,取得高薪offer。
关注公众号,测试干货及时送达
本文来自博客园,作者:测试玩家勇哥,转载请注明原文链接:https://www.cnblogs.com/Nephalem-262667641/p/18357327