搭建环境
在自己服务器上安装环境
CNode社区应用 · 凡猫资源项目组
点击查看【bilibili】
练习项目
实战1: 创建1000个测试账号
测试账号
testuser.csv
操作步骤
- 新建线程组
- 创建注册请求
请求接口
请求url: http://${ip}:3000/signup
请求方式:POST
数据格式:Content-Type: application/x-www-form-urlencoded
请求body数据
字段名 | 说明 |
---|---|
loginname | 用户名 |
pass | 密码 |
re_pass | 确认密码 |
邮箱地址 |
- 登录到服务器上激活用户
导出所有用户的token值
mongoexport -d node_club_dev -c users -o /tmp/testuser.csv --type csv -f "accessToken"
将所有的 服务器上 /tmp/testuser.csv 文件导出到本地。
实战2: 发布话题压测
性能指标
- 100用户 同时并发发布话题
- 压测5分钟
添加聚合报告,查看聚合报告的响应时间与错误率
HTTP请求-发布话题.jmx
实战3: 压测
性能场景:
30用户发帖
20用户浏览话题
50用户在查看未读消息数
总并发数:100
并发时间:10分钟
准备token,从数据库中导出 token命令
mongoexport -d node_club_dev -c users -o /tmp/testuser.csv --type csv -f "accessToken"
从服务器中导出topicid
mongoexport -d node_club_dev -c topics -o /tmp/testid.csv --type csv -f "_id"
要求
- 聚合报告
- 压测过程中使用nmon 监控服务器状态。
nmon工具使用
数据分析:nmon analyser v66.xlsm
数据监控:nmon16m_helpsystems.tar.zip
./nmon_x86_64_centos7 -f -s 1 -c 200
常见面试问题
- 有搭建过测试环境吗? 怎么搭建的?
参考回答:
我们公司内部的测试环境一般情况下都是有运维团队统一维护,有些时候我也参与过测试环境搭建。
搭建测试环境 其实就是将开发写好的代码 在一台服务器上搭建能够运行起来,所以我们搭建的时候主要参考开发使用的技术,因为开发所用的技术比较复杂,所以搭建的时候都有对应得操作手册,我们在搭建得时候是根据操作手册进行搭建的。
因为现在很多应用程序使用的技术都差不多,所以搭建环境的时候一些基本环境都是类似的,比如搭建Java环境,Mysql数据库环境,Tomcat 应用服务器,Ngnix应用服务器 这些常用技术搭建都是类似,只不过企业内部还用到一些特殊的内部操作,如果没有操作手册,开发也会详细告诉我们的。
搭建环境,一般也都是在Linux环境下部署的,主要就是用一些Linux的常用命令。
- 性能测试的测试用户是怎么来? (如何批量创建账号?)
参考回答:
可以使用直接在数据库中创建账户信息 ,使用Mysql的存储过程,批量添加数据
存储过程参考
Mysql-06
也可以在JMeter 通过是用csv数据文件 + 设置线程数的方式来进行批量注册账号。
验证码问题:
如果网站注册账号的时候需要使用到验证码,让开发在测试环境中修改代码设置一个万能码,比如我们后台使用的是000000
作为万能验证码。
- 你们平时是怎么做性能测试的?
参考回答:
- 性能场景和指标 (上级领导制定)
- 作为测试人员,根据场景 编写 测试脚本
- 创建http请求
- 业务之间有上下游关联,—正则表达式或者json提取器
- 准备测试数据—数据存放在csv文件中
- 添加聚合报告
- 运行这些场景的时候,监控服务器
- 监控服务器常用方法: 简单 使用 top命令
- 也可以使用 nmon 工具进行监控,导出报表
- 执行完成之后,需要关注的点: 2000并发,10分钟
- 响应时间 (最大响应时间不超过3秒, 95%响应时间控制在1秒之内)
- 错误率 不超过0.1%
- 服务器的CPU使用率 90%以内 (4核心的CPU)
- 内存使用 (服务器为8G内存,不超过2G)
- 如果性能不达标,我们会让开发进行程序优化或者运维进行服务器端优化
- 程序优化: 代码优化,数据库优化(索引,数据库集群)
- 服务器端优化:修改一些参数,增加服务器。
- 优化完成之后,再进行压测,看性能是否提高。
- 最后,整个团队一起整理测试报告。