场景

用loadrunner11录制脚本,处理后回放,加上检查点,报错找不到检查点对应的内容,去掉检查点,没有报错,但是打开页面没有该操作的痕迹。手动在页面上操作没有问题。

解决过程

  1. 怀疑是脚本中请求有问题或者没有作关联。在页面上通过开发者工具(F12)查看几个关键请求,都没有问题,顺序和内容都能对得上。使用到的参数和返回值,都是固定的,无须关联。
  2. 查看应用日志,看是否有报错信息。应用有十几个中心,通过dubbo调用,然而由于使用的docker容器,日志没有做改造,无法进行采集查看,而且启用的容器数量比较多,还有其他人使用,查看入口的web容器日志(6个),跑loadrunner脚本,无法看清日志内容,只能作罢。
  3. 使用postman模拟loadrunner中报错的请求。将loadrunner中的请求转换在postman中实现,发现报错用户没有登录。这次采用的架构与之前不同,后端为java应用,前端为react,通过接口和后端交互,所以其实loadrunner中的请求与前端和后端交互的请求基本一致,但是loadrunner没有保存接口要求的验证信息token,同时,token经过一定时间要求更新,所以出现该问题。

解决方案

知道了问题为loadrunner请求时没有在header中加入token,就简单了很多。在登录步骤,获取token,然后,在需要token认证的步骤的header中加入token。

// token长度较长,web_reg_save_param默认长度为256,不够存储,所以需要该函数设置其长度(1024字节)
web_set_max_html_param_len("1024");
// 获取token函数,第一个参数为存储的变量名,LB和RB为左边界和右边界,ORD为第几位,NotFound为找不到时的响应
web_reg_save_param("token",
"LB=\"token\":\"",
"RB=\"",
"ORD=1",
"NotFound=warning",
LAST);
// 打印
lr_output_message("token is %s\n",lr_eval_string("{token}"));
// 为接下来的请求header添加内容
web_add_header("token","{token}");

总结

压测相关的东西,现在是在边实战边学(主要是之前搞压测的同事离职了),之前看着同事弄,感觉很简单,就是录制,然后参数化,关联,就完事了,只要懂业务就行了,自己上手了才发现,好多loadrunner方面的东西很多都不懂,还有业务方面也有很多不懂,还是要多动手多学习。

------------------------------------------分割线-------------------------------------------------------------

2019.10.16号补充:

今天发现,web_add_header只对后续的第一个请求有效(这个早就知道了其实),而如果是通过页面录制的脚本,往往请求数很多,每个请求前都加上会很麻烦,lr提供了另一个函数web_add_auto_header,自动为所有请求加上header,只需要在获取到token后,使用该函数,则会自动为后面所有请求添加header。

loadrunner脚本因为没有token报错的更多相关文章

  1. Token报错问题

    解决token报错,CSRF令牌问题: <form method="POST" action=""> {{ csrf_field() }} < ...

  2. LoadRunner录制回放脚本RecContentType=application/json报错

    今天做一个新项目,项目系统的框架是用SSH,特意查看了一下项目源码,用的ajax提交比较多,主要的问题是该系统对IE(8~10)浏览器都不兼容,无法进行录制. 是问题,总有解决的办法! 我本机为Loa ...

  3. shell 字符串比较与脚本 too many arguments 报错

    一.问题 最近在写 shell 脚本的时候,遇到了一些小问题,就是我在判断一个字符串是否为空的时候经常报下面的错,程序是正常执行了,但是有这个提示很蛋疼,下面就是看看是什么问题导致的? [: too ...

  4. shell脚本if判断语句报错[: too many arguments的两种原因

    shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...

  5. MySQL执行外部sql脚本文件命令是报错:unknown command

    使用source导入外部sql文件: mysql> source F:\php\bookorama.sql; -------------- source F: -------------- ER ...

  6. zabbix官方源替换为阿里云的zabbix源,一键脚本。(安装zabbix报错curl#18 - "transfer closed with 2988713 bytes remaining to read":15 ETA Trying other mirro)

    最近突然安装zabbix总是报错,比如 (24/27): t1lib-5.1.2-14.el7.x86_64.rpm | 166 kB 00:00:00 zabbix-web-4.4.6-1.el7. ...

  7. Error parsing XML: not well-formed (invalid token) 报错+R文件消失解决的方法

    xml报错: 这个xml文件上右键source ->format 注意:res下的文件名称不能大写 R文件消失: 在攻克了其它问题的情况下(或者其它问题还没解决先凝视掉) 手动删除gen pro ...

  8. Jenkins在shell脚本运行docker权限报错解决

    报错环境 系统信息 Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial doc ...

  9. weblogic下 微信公众平台获取token报错

    问题描述: 开发微信公众平台,本地tomcat可以正常获取token并发送模板消息,部署在weblogic后报错,异常信息如下: java.security.InvalidKeyException: ...

随机推荐

  1. CF1037H Security——SAM+线段树合并

    又是一道\(SAM\)维护\(endpos\)集合的题,我直接把CF700E的板子粘过来了QwQ 思路 如果我们有\([l,r]\)对应的\(SAM\),只需要在上面贪心就可以了.因为要求的是字典序比 ...

  2. svn 跟 git的区别

    1.svn是集中式版本控制系统,git是分布式版本控制系统 2.svn是直接与服务器进行交互,git是将文件存到本地然后再推送到服务器 3.svn必须在连网的情况下工作,git可以不连网开发 4.sv ...

  3. Spring Framwork Maven dependency

    Spring Framwork 更新时间 2019.12.21 统一版本号 <properties> <!-- spring版本号 --> <spring.version ...

  4. 【luoguP1311 】选择客栈

    题目描述 丽江河边有nn家很有特色的客栈,客栈按照其位置顺序从 11到nn编号.每家客栈都按照某一种色调进行装饰(总共 kk 种,用整数 00 ~k-1k−1 表示),且每家客栈都设有一家咖啡店,每家 ...

  5. 位运算(C++)

    C++输出十六进制 #include<iostream> #include<iomanip> using namespace std; int main() { ; ; int ...

  6. *p++=i怎么理解?

    #include<stdio.h> void fibonacci(int *p,int n) { *p++=1; *p++=1; while(n>2) { *p++=*(p-1)+* ...

  7. 必懂知识——HashMap的实现原理

    HashMap的底层数据结构 1.7之前是:数组+链表 数组的元素是Map.Entiry对象 当出现哈希碰撞的时候,使用链表解决, 先计算出key对应的数组的下标,这个数组的这个位置上为空,直接放入, ...

  8. Dubbo API 笔记——Dubbo架构与使用

    转载于: https://blog.csdn.net/benhuo931115/article/details/78457149 架构演变 单一应用架构 所有功能部署在一个应用上,用于简化增删改查工作 ...

  9. 13.调整数组顺序使奇数位于偶数前面 Java

    思路 两次遍历,第一次把奇数加到list中,第二次把偶数加到list中,时间复杂度为O(n). 利用类似于插入排序的方法,但时间复杂度为O(n^2). 代码 import java.util.Arra ...

  10. 项目中遇到的关于Java的问题

    1.Collections对List集合中的数据进行排序 http://blog.csdn.net/veryisjava/article/details/51675036 2.Java随机数 http ...