web性能测试随笔

我们产品的架构是:

底层能力经过一些列的处理生成待入库文件→由dubbo调用入库组件dic通知easyes向elasticsearch插入数据。

底层能力包含:语音转码、语音转写、转写文本添加标签(音量,时间戳等信息)

 不BB了。。。晚点再补充。

先说需求:

客户要求我们系统在特定条件下,实现数据预览查询、模型检索上线,报表预览查询、报表下载响应等场景作限制处理:

1、不要报错

2、接受数据范围限定

3、接受任务排队机制

4、系统别报错

扫描二维码关注公众号,回复: 5719038 查看本文章

根据客户需求确定了几个使用场景,目前设定了时间:一年、半年、三个月;数据量大小都保证检出数在十万只百万级别。

不BB了。。。晚点再补充。

实现:

jmeter前置信息:公共变量、模型名称、mysql/oracle数据库连接(需要对应的jar包)、HTTP Cookie管理器、察看结果数、聚合报告

以其中一个场景(报表预览)为例:

http请求:登录系统(loginIn),设置IP、端口、协议、方法、编码格式以及路径

传用户名和密码参数,使用base64加密方式,所以提前导入,accountName传参值设置为${__base64Encode(${user_name},)}

http请求:报表预览(getTableData),设置IP、端口、协议、方法、编码格式以及路径

1、设置对应Form Data的参数值

2、补充HTTP头信息:Request Headers,此时的Cookie可不添加

3、可添加响应断言:响应文本包括“登陆成功”

测试时发现jmeter的响应结果和页面的response不一致,接口虽然请求成功了,但是返回的结果缺少一部分字段。

仔细检查才发现,报表预览getTableData接口在发送请求时在参数中并没有带TableId字段,所以直接调用此接口来测试是行不通的.

然后刷新此页面后,再次点击预览,才发现在预览前有获取报表Id的接口getReportById,逐个按顺序添加至TestSuite,执行后返回结果正常。

结果查看:

从察看结果数中可以看到每个具体的请求的响应情况

从聚合报告中查看到每个线程组的执行次数,最高最低响应时间、错误率等信息 

总结:

1、数据库或加密等信息需要提前准备好,向研发人员咨询支持的包

2、若涉及到验证码等信息,可以加入后门,使用万能验证码,或临时关闭验证码校验

3、对于session保持的请求,需要提前加入HTTP Cookie管理器

4、若请求中没有带有关键参数,可查看前置相关请求或检查隐藏参数

猜你喜欢

转载自www.cnblogs.com/wjlv/p/10630079.html