了解 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。

关注公众号,测试干货及时送达

往期精选文章:
接口自动化测试项目2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等
揭秘抓包利器:Python和Mitmproxy让您轻松实现接口请求抓取与分析!
构建高效的接口自动化测试框架思路
Pytest 快速入门
接口自动化之测试数据动态生成并替换
requests模块该如何封装?
接口自动化如何封装mysql操作
一文看懂python如何执行cmd命令
最通俗易懂python操作数据库
python-Threading多线程之线程锁
python正则一篇搞掂
性能测试之必备知识

性能分析思

Python + ChatGPT来实现一个智能对话的钉钉机器人
一文看懂python如何执行cmd命令
posted @ 2024-08-13 16:56  测试玩家勇哥  阅读(32)  评论(0编辑  收藏  举报