川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > 常见问题

接口性能测试—JMeter关联之正则表达式提取器

作者:川石学院 日期:2021-07-28 13:39:28 点击数:

  本章节主要讲解“接口性能测试—JMeter关联之正则表达式提取器”的内容,那为什么要关联?在客户端与服务器通信过程中,多个请求/响应间的数据会有相互依赖的关系。

  比如上一个请求返回的某些响应数据在后续的请求中需要用到。

接口性能测试—JMeter关联之正则表达式提取器(图1)

  下面是一些典型的例子:

  •   1)比如第一次访问网站获取的session id在后续的请求都会将其传给网站;

  •   2)服务器生成token返回给用户,在后续的请求中要带上token;

  •   3)根据条件查询某记录,在查询结果集中选择记录进行操作(比如删除)...

  但是有些通信协议是无状态的,不存在上下文相关性。多个请求/响应之间的数据不能直接进行传递;

  并且每次服务器返回的数据不是一成不变的,传递的数据不能通过硬编码(写死)保存来解决。

  比如上面三种情况都会产生动态变化的数据:

  •   1)session id的生命周期一般在关闭浏览器时就结束了,每次打开浏览器访问返回的session id并不相同;

  •   2)token也有生命周期,一般也是随机,无状态的;

  •   3)若查询条件参数化了或服务器返回的查询结果集改变了,后续的操作可能会失败。

  在这些情况下,可以考虑将服务器返回的动态变化的数据保存到某个参数中,需要时再从中取出。

  •   关联原理

  举个例子,看电影,看电影过程有如下步骤:

  •   1、购票

  •   2、验票

  •   3、观影

  每个步骤可以看做一个请求/响应。观众相当于客户端,影院方相当于服务器。

  过程如下图所示:

  接口性能测试—JMeter关联之正则表达式提取器(图2)

  观众购买的电影票可以看成服务器返回的响应数据,要验票通过才能入场观影。

  观众购票相当于一个请求,验票是下一个请求,这需要将上一个请求返回的响应数据(电影票)放在下一个请求中发送给服务器处理。

  假设这部电影非常精彩,想重新再看一次,因为电影票只能使用一次,观众必须重新购票,才能验票通过入场;使用第一次购买的电影票入场肯定会被拒之门外。

  为了解决这个问题,可以考虑做如下假设:

  每次将购买的电影票放入随身携带的LV钱包,并且在放入之前将使用过的票丢弃,以防止入场时掏错票;入场的时,从钱包中取出票来验票,这样就万无一失了。

  将电影票放入钱包中,相当于将服务器返回的数据保存起来了,这里钱包就是保存关联数据的参数。

  •   关联的定义

  将服务器返回的数据包中满足条件的数据保存到一个参数中的过程。怎样将服务器返回的数据保存起啦,JMeter中可以使用后置处理器来处理关联数据,常见的方法有:

  •   1、正则表达式提取器

  •   2、JSON提取器

  需要关联数据的特征

  怎样确定哪些数据是需要做关联的,可以从关联数据的特征来识别出这些数据。

  •   关联数据有如下三个特征:

  1、服务器返回

  需要关联的数据一定是从服务器返回的。

  客户端输入的数据不需要进行关联,比如输入的用户名与密码。此特征是必选的。

  2、数据会再次发送给服务器处理

  保存上一个请求响应的数据,其目的是为了将其用于下一个请求中,否则保存起来没有意义。

  此特征是可选特征,也就是说不再次发送也是可以保存数据进行关联的。

  3、数据动态变化

  上一个请求响应的数据若不会动态变化,完全可以写死在脚本中,不需要花力气额外保存再次取出。

  正是由于每次返回的数据动态变化,我们需要根据某种规则将这些动态变化的数据找出来保存,然会取出实际返回的数据。但此特征也是可选的。不动态变化一样可以保存进行关联,但意义不大。

       本章节关于“接口性能测试—JMeter关联之正则表达式提取器”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-07-28 13:39:28
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-07-28 13:39:28
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-07-28 13:39:28
  • 建筑工程专业朱同学成功转行为软件测试人!2021-07-28 13:39:28
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-07-28 13:39:28
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-07-28 13:39:28
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-07-28 13:39:28
  • 文科生转行软件测试照样拿下高薪15K!2021-07-28 13:39:28
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-07-28 13:39:28
  • 毕业1年,迷茫的他最终选择转行软件测试2021-07-28 13:39:28