难题解决分享
难题1:构造测试数据时,数据库批量插入数据,解决表字段唯一性
解决:利用时间戳unix_timestamp(now()) 或 uuid() 或 substring(uuid_short(),9) 生成指定位数的随机数
难题2:编写脚本时,其他场景可能需要获取登录后响应结果Token
解决:
a.正则表达式提取器-获取token 正则表达式:access_token":"(.+?)",
b.设置Token为全局变量 ${__setProperty(newtoken,${Token},)}
c.HTTP信息头管理器 Authorization : Bearer ${__property(newtoken)}
难题3:编写脚本时,场景之间相互依赖,例如提交工单,处理工单,需要获取提交工单后的工单号
解决:
a.提交工单请求:正则表达式提取器-获取orderNum 正则表达式贪婪匹配:"orderNum":"(.*?)"
b.处理工单请求:引用${ orderNum }
难题4:编写脚本时,实现多用户多线程登录
解决:
a.保存用户账号密码数据信息,生成CVS格式文件
b.线程添加CSV 数据文件设置,引用对应字段name,pwd
难题5:编写脚本时,响应信息乱码:
解决:添加BeanShell 后置处理程序- 编写prev.setDataEncoding("utf-8")
难题6:执行脚本,jmeter性能测试报Address already in use: connect错误
解决:https://blog.csdn.net/pittpakk/article/details/93474825
难题7:执行脚本,生成性能报告TPS过高,资源利用过高
解决:可以添加固定定时器来降低TPS
难题8:执行脚本,稳定性场景出现事务错误率,报404错误,nginx资源不足:
解决:
a.考虑是否加配置keepalive_requests https://github.com/jinhailang/blog/issues/37
b. 考虑优化ulimit和time_wait