系统性能测试,需要模拟生产环境搭建应用服务和建造环境数据,最大限度的还原生产环境,使系统性能测试的指标更加合乎实际,真实、准确。
如某项目财务系统中的薪资管理模块做工资计算的压测,需要在系统内造179家单位、每家单位500个用户(400人在职、100人退休)...,最终要分别为每家单位的500个用户导入各项工资数据(用于计算)。
造数据过程中,每家单位切换分别导入在职、退休人员的工资数据,会非常繁琐,此次通过jmeter工具,以后台接口的形式导入工资数据。以下做个工作过程记录:
1. 录制jmx脚本
使用抓包工具,录制工资数据通过附件导入的操作过程,生成jmx文件。
2. 设置文件上传
2.1 设置http请求的文件上传:
文件名称(导入文件在本地的绝对路径)、参数名称(与请求头的filePath一致)、MIME类型(参考附录介绍)。
2.2 设置请求头
将请求头中的Content-Type删除,因与【文件上传】中的MIME类型冲突。
3. 定义变量
请求体中的id具有唯一性,通过这个id为每个单位的在职类别传入工资数据。故,需要从数据库中查找出该id值,作为变量传给请求接口,以达到为每个单位的在职人员导入工资数据的目的。
3.1 查找id
找到该id值所在的表,将该表中“在职工资数据导入”所对应的id值查找并导出(csv格式,命名为:zzgzsjdr.csv)
注:该操作在造业数据的过程中会经常用到
3.2 设置id变量
将id设置为变量,请求接口遍历该id值,达到目的 。
3.1.1 添加 用户定义的变量
3.1.2 添加 CSV数据文件设置
3.1.3 将请求中的id参数化
4. 添加断言
根据接口请求响应的成功结果,添加断言
5.执行写好jmx脚本,造业务数据
注意:有些文件上传操作受前端控制,无法单纯依靠后端接口完成文件上传操作。
******************************************************************************************************************************************************************************************************************
当然,更简便的方式是通过写sql语句导入,简要如下:
******************************************************************************************************************************************************************************************************************1. 定义变量
2. 设置csv文件读取
3. 写update语句(更新在职、退休工资表中的工资数据)
4. 执行结果(在职、退休工资数据更新成功)
******************************************************************************************************************************************************************************************************************
附录:
依据文件类型,配置MIME TYPE 对照表: