通过jmeter上传/导入文件

系统性能测试,需要模拟生产环境搭建应用服务和建造环境数据,最大限度的还原生产环境,使系统性能测试的指标更加合乎实际,真实、准确。

如某项目财务系统中的薪资管理模块做工资计算的压测,需要在系统内造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 对照表:

 

posted @ 2022-12-06 19:50  查拉图斯特拉面条  阅读(2795)  评论(0编辑  收藏  举报