(七)关联和断言

一.关联

  • 哪些数据需要关联

    • 数据是由服务器端生成的
    • 数据在每一次请求时都是动态变化的
    • 数据在后续的请求中需要再发送出去
      在这里插入图片描述
  • 举个栗子, 常见的 Session ID 就是一个典型的需要关联的数据。它需要在交互过程中标识一个客户端身份,这个身份要在后续的交互中一直存在,否则服务端就不认识这个客户端了。Spring Boot 中有一个 spring-boot-starter-security,默认会提供一个基于 HTTP Basic 认证的安全防护策略。它在登录时会产生一个 CSRF(Cross-Site Request Forgery)值,这个值典型地处于动态变化中。

    • 可以看到登录信息返回csrf,没有使用这个值的接口将会没有权限访问。
      在这里插入图片描述
    • 首先添加 Cookies Manage。JMeter 在处理 CSRF 时,需要添加一个 Cookies manager。如下:
      在这里插入图片描述
    • 这里的 Cookie Policy 一定要选择 compatibility,以兼容不同的 cookie 策略。
    • 取动态值,在返回 CSRF 值的地方加一个正则表达式提取器来做关联。
      在这里插入图片描述
    • 这里的,就是要取出这个动态的变化值,保存到变量 csrfNumber 中去。
    • 然后, 将发送时的 CSRF 值替换成变量,就可以正常访问其它接口了。
      在这里插入图片描述
  • jmeter有多种提取器,使用什么样的提取器取决于业务的需要。

二.断言

  • 断言就是判断服务端的返回是不是正确的,判断逻辑如下:
    在这里插入图片描述
    • 举个栗子,登录接口:
      在这里插入图片描述
    • 执行结果:
      在这里插入图片描述
    • 添加断言:
      在这里插入图片描述

总结

  • 关联和断言的前半部分是一样的,都是从服务器返回信息中取出数据。但不同的是,关联取来的数据每次都会不同;而断言取出来的数据基本上都是一样的,除非出了错。

  • 对服务端生成的,并且每次生成都不一样的动态变化的数据,那么将其取回来之后,在后续的请求中使用,这种逻辑就是关联。

  • 对服务端返回的,可标识业务成功与否的数据,将其取回来之后,做判断。这种逻辑就是断言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章