前言:性能测试的过程少不了测试数据的整理,有时需要我们自己构建测试数据,有时配合开发人员提供测试数据即可,本文记录了笔者在工作时遇到的情景及数据解决的方式。
1、XX系统图片上传脚本
工作时遇到需要批量上传100张图片的测试需求,并发用户数为30用户,为此需要准备了3000张图片用于测试。
- 测试图片的收集
笔者当时准备了两套方案:1)使用爬虫到百度图片上爬取图片2)对同一张图片添加不同的水印- 网上资源很多,参见百度图片爬虫,基于python3
- 这部分自己研究了一下,调用很简单的几行Python代码就可以实现,我们写一个for循环就可以搞定了
1 | from PIL import Image, ImageDraw, ImageFont |
图片准备好之后,录制下来的图片上传脚本如下:
除了常见的fileName,还需要图片的md5码,原来每次上传图片前,前端js会获取文件的Md5码,我们在上传文件的同时也要对文件的md5码做一个参数化图片md5码的获取
1
2
3
4
5
6
7
8
9
10
11import hashlib
import os
#3000张图片所在文件夹
filePath = r''
file_name = os.listdir(filePath)
fp = open('md5.txt','bw')
for temp in file_name:
fp.write(getFileMD5(filePath+'/'+temp).encode('utf-8'))
fp.write('\n'.encode('utf-8'))图片文件名称在后续的操作中变得比较混乱,不利于我们的参数化处理,所以写了python demo对文件名做批量的更换处理
1
2
3
4
5
6
7
8
9
10
11import os
# 图片文件夹
filePath = r''
movie_name = os.listdir(filePath)
i=0
for temp in movie_name:
new_name = 'image' + str(i).zfill(5) + '.jpg'
os.rename(filePath +r'\\'+ temp, filePath +r'\\'+ new_name)
i += 1
2、XX系统文件sourceID的提取
项目中需要做一个从资源库里勾选部分图片来创建新的图集,分析请求之后发现资源库里的每张图片都会有自己的sourceID,测试需求20并发,每个虚拟用户勾选100张图片,那就需要2w个souceID。当时的情况是,从数据库里导出这些数据,要打审批->传审批->审批通过,一套流程下来三天就过去了,想了想还是自己手动提取吧。
分析了分析请求之后发现系统在访问资源库的时候会将资源库的数据陆续返回,我们对这些数据做进一步处理就能提取出来souceID了
使用Python正则提取对应的souceID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import re
soucefp = open("sourceFile.txt",'r',encoding='utf-8')
FileString = soucefp.read()
reg = r'&attachment=(.*?)&itemId='
result = re.findall(reg,FileString)
outfp = open('outFile.txt','bw')
for string in result:
string = string.encode('utf-8')
outfp.write(string)
outfp.write('\n'.encode('utf-8'))
soucefp.close()
outfp.close()