zoukankan      html  css  js  c++  java
  • JMeter之使用技巧

    使用镜像服务器


        在调试和修改测试计划的过程中,通常会为采样器增加一些额外的设置,例如设置额外HTTP头、Cookie管理器或认证管理器等,但当设置了这些内容后,sampler发出的请求是否就与预期的完全一致呢?

      当然用户可以通过添加监听器来看查采样器发出的HTTP请求,但如果调试过程中并不想真正地把请求发送给被测应用,如何解决这个问题呢?

      Jmeter 提供了一个名叫HTTP Mirror Server的组件,HTTP Mirror Server可以启动一个镜像的服务器,该服务器把所有接收到的请求原封不动地返回,这样就可以看到发出请求的具体内容了。

    添加HTTP Mirror Server的方式:

    右键点击“测试计划”--->非测试元件--->HTTP镜像服务器

    如果有必要的话可以修改端口号,确认完毕后点击“启动”按钮来启动Server 。

    接下来修改采样器,使其将HTTP请求 发送到localhost:8081(也就是Mirror Server启动的位置)

    然后,运行测试计划,则可以从监听器“查看结果树”中看到响应数据。

    启动Debug日志记录


     

      大多数测试元件都支持Debug 日志记录。如果通过 GUI 运行测试计划,那么在选中测试元件后,可以通过“帮助”菜单enable debug或者disable debug。在“帮助”菜单 中有一个选项“What’s this node? ”,

      通过它可以查看GUI 和测试元件的类名,如图 11 -7 所示。通过它们,测试人员可以决定修改哪一项JMeter 属性,以便修改日志级别。

    例如:我们可以点击一个HTTP请求,选择菜单栏“帮助”--->what's this node ? 

     

    在jmeter的bin目录下,找到jmeter.properties 文件,关于日志级别的属性如下:

    #Logging levels for the logging categories in JMeter. Correct values are FATAL_ERROR, ERROR, WARN, INFO, and DEBUG
    # To set the log level for a package or individual class, use:
    # log_level.[package_name].[classname]=[PRIORITY_LEVEL]
    # But omit "org.apache" from the package name. The classname is optional. Further examples below.

    log_level.jmeter=INFO
    log_level.jmeter.junit=DEBUG
    #log_level.jmeter.control=DEBUG
    #log_level.jmeter.testbeans=DEBUG
    #log_level.jmeter.engine=DEBUG
    #log_level.jmeter.threads=DEBUG
    #log_level.jmeter.gui=WARN
    #log_level.jmeter.testelement=DEBUG
    #log_level.jmeter.util=WARN
    #log_level.jmeter.util.classfinder=WARN
    #log_level.jmeter.test=DEBUG
    #log_level.jmeter.protocol.http=DEBUG
    # For CookieManager, AuthManager etc:
    #log_level.jmeter.protocol.http.control=DEBUG
    #log_level.jmeter.protocol.ftp=WARN
    #log_level.jmeter.protocol.jdbc=DEBUG
    #log_level.jmeter.protocol.java=WARN
    #log_level.jmeter.testelements.property=DEBUG
    log_level.jorphan=INFO

     

    线程之间传递变量


       JMeter 变量作用域局限于所属线程。这样设计是经过深思熟虑的,目的是让测试线程能够独立运转。有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量。 

      其中一种方法就是使用属性。属性为所有 JMeter 线程所共享,因此当某个线程设置一个属性后,其他线程就可以读取更新后的值。

      如果存在大量数据需要在线程间传递,那么可以考虑使用文件。例如,测试人员可以在一个线程中使用监听器,保存响应到文件(Save Responses to a file )或者 BeanShell PostProcessor 。而在另外一个线程中使用HTTP 采样器的“file: ”协议来读取文件,接着使用一个后置处理器或者BeanShell 测试元件提取信息。 

      如果在测试启动前测试人员就能获得测试数据,那么最好将数据保存到文件中,使用CSV Dataset读取。

     

    ----------------------------------------

    这个技巧,操作较为麻烦,暂时不给详细的例子。

  • 相关阅读:
    layui穿梭框内容溢出解决办法
    location之alias浅析
    Semaphore和SemaphoreSlim实现并发同步
    Barrier实现并发同步
    CountdownEvent实现并发同步
    AutoResetEvent实现并发同步
    TrieTree树
    EncryptByPassPhrase与DecryptByPassPhrase的浅说
    一个mp4转gif的网站
    vue轮播图(可随父元素高宽自适应)
  • 原文地址:https://www.cnblogs.com/DeryKong/p/12237029.html
Copyright © 2011-2022 走看看