关于性能测试环境
1.建立测试环境
在进行性能则试之前,需要先完成性能测试环境的搭建工作,测试环境一般包括硬件环境、软件环境及网络环境,一般情况下可以要求运维和开发工程师协助完成
2.性能测试环境的特点
- 性能测试对测试环境的独立性要求更高,更为严格,因为如果某环境下运行多个系统,就很难判断其中的某个环境对资源的占用情况
- 尽量保持性能测试环境与真实生产环境的一致性
3.如何保证测试环境与生产环境一致性
- 硬件环境
- 包括服务器环境(服务器硬件配置,硬件服务器的台数等),网络环境等
- 软件环境
- 版本一致性:包括操作系统的版本、数据库、被测应用程序、第三方软件等
- 配置的一致性:包括操作系统的版本、数据库、被测应用程序、第三方软件等
- 使用场景的一致性
- 基础业务数据的一致性:比如正式环境中论坛帖子有50w篇,那么测试环境中论坛帖子也应该要有50w篇,否则性能测试结果准确性都是不够准确的
- 业务操作模式的一致性:尽量模拟真实场景下用户的使用情况,比如发送的请求负载量要与用户环境一致
4.测试环境的数据构造
- 了解测试数据结构
- 构造数据之前需要了解数据库的数据结构,比如需要构造5w注册用户的测试数据,那么就先要了解这个注册用户的表是哪个,这个表需要哪些字段,这个表有没有关联到其他的表,以上这些建议与运维或者后台开发详细了解情况
- 进行数据构造
- 数据构造建议使用脚本的方式来进行构造,这里值得注意的是主键id一定不要重复,其他的一些重要的数据也不要重复比如用户名称,注册的用户id等,示例代码如下:
#连接数据库
db = pymysql.connect(host='192.168.0.233',
user='sql192_168_0_23',
password='AXWezQ5E2p',
database='sql192_168_0_23')
#创建游标
cursor = db.cursor()
#循环创建数据
for i in range(4,100000):
b=i
try:
# 添加数据库语句
cursor.execute(f'INSERT into ls_user VALUES({b},"{b}",0,"用户{b}","/static/common/image/default/user.png",{1310000000+b},0,NULL,0,NULL,9998973.00,20,1027.00,0.00,null,"19f76eff88f13c7ad7dc989faaed130f",null,"2d13",0,0,0,NULL,0,"",0,NULL,NULL,NULL,"{b}",1650612321,null,1650966433,"192.168.0.108",0,0,0,0.00)')
cursor.execute(f'INSERT into ls_user_address VALUES({b},{b},"{b}",{1310000000+b},110000,110000,110101,"湖南省xx市",null,0,0,1,1650631634,null,0)')
# 提交
db.commit()
except :
print(111111)
db.rollback()
#关闭数据库
db.close()