zoukankan      html  css  js  c++  java
  • Gatling的进阶三

    1. checks

    check是Gatling非常重要的一个特性,用来判断是场景否真的执行成功了

     
    .exec(http("request_1")
          .get("/")
          .headers(headers_1)
          .check(status.is(302)) // 我们期望返回的status是302,所以check
      )
     
    或者
    .check(regex("""<td class="number">ACC${account_id}</td>""").exists)
    判断是否在返回的response中包含正则表达式所匹配的字符串
     
    check还能够在执行过程中将动态的数据保存下来,例如:
    check(
      regex("""<a href="/excilys-bank-web/private/bank/account/(ACC[0-9]*)/operations.html">""")
      .saveAs("acc1")
    )
    将匹配的数据存放到acc1中,以便在下面的场景中进行使用
     

    2. session

    当模拟器运行时,每个用户拥有自己独立的session。我们可以利用session做点有益的活动:
     
    例如上例中,我们使用的account id,每次都需要从feeder的读取中获得,而且必须事前指定,不够动态。实际上,我们可以从过程中直接获得:
     
    check(
    regex("""<td class="number">ACC(d+)</td>""")
      .saveAs("account_id")
    )
    然后就可以在接下来的scenario中使用${account_id}
     

    3. 条件判断

    你可能需要根据不同的状态执行不同的场景,这时候就需要条件判断
    .doIf("${username}", "user7") {
        exec(
          http("request_9")
            ...
        )
        .pause(0 milliseconds, 100 milliseconds)
        .exec(
          http("request_10")
            ...
        )
    }
     
    通过doIf,只有username是user7的模拟用户,才会执行下面的操作
     
    还可以使用更高级的scala功能:
    .doIf(session => session.getAttribute("username") != "user7") {
      exec
        ...
    }
  • 相关阅读:
    ATHEROS: ART分区中的数据解析
    提问的智慧<转自chinaunix>
    <转>使用valgrind检查内存问题
    openwrt 文件系统加载分析
    openwrt启动脚本分析
    突发奇想20150126
    Openwrt netifd ubus解析
    <转>如何调试makefile
    openwrt拆离dl目录和toolchain的方法
    建立Go工作环境
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6062771.html
Copyright © 2011-2022 走看看