搭建环境

在自己服务器上安装环境
CNode社区应用 · 凡猫资源项目组
点击查看【bilibili】

练习项目

实战1: 创建1000个测试账号

测试账号
testuser.csv
操作步骤

  1. 新建线程组
  2. 创建注册请求

请求接口
请求url: http://${ip}:3000/signup
请求方式:POST
数据格式:Content-Type: application/x-www-form-urlencoded
请求body数据

字段名 说明
loginname 用户名
pass 密码
re_pass 确认密码
email 邮箱地址

image.png
image.png


  1. 登录到服务器上激活用户

CNode社区应用 · 凡猫资源项目组

  1. 导出所有用户的token值

    1. mongoexport -d node_club_dev -c users -o /tmp/testuser.csv --type csv -f "accessToken"
  2. 将所有的 服务器上 /tmp/testuser.csv 文件导出到本地。

点击查看【bilibili】


实战2: 发布话题压测

性能指标

  1. 100用户 同时并发发布话题
  2. 压测5分钟

添加聚合报告,查看聚合报告的响应时间与错误率
HTTP请求-发布话题.jmx

实战3: 压测

性能场景:
30用户发帖
20用户浏览话题
50用户在查看未读消息数
总并发数:100
并发时间:10分钟


准备token,从数据库中导出 token命令

  1. mongoexport -d node_club_dev -c users -o /tmp/testuser.csv --type csv -f "accessToken"

image.png
从服务器中导出topicid

  1. mongoexport -d node_club_dev -c topics -o /tmp/testid.csv --type csv -f "_id"

要求

  1. 聚合报告
  2. 压测过程中使用nmon 监控服务器状态。

nmon工具使用

数据分析:nmon analyser v66.xlsm
数据监控:nmon16m_helpsystems.tar.zip

  1. ./nmon_x86_64_centos7 -f -s 1 -c 200

点击查看【bilibili】

常见面试问题

  1. 有搭建过测试环境吗? 怎么搭建的?

参考回答:
我们公司内部的测试环境一般情况下都是有运维团队统一维护,有些时候我也参与过测试环境搭建。
搭建测试环境 其实就是将开发写好的代码 在一台服务器上搭建能够运行起来,所以我们搭建的时候主要参考开发使用的技术,因为开发所用的技术比较复杂,所以搭建的时候都有对应得操作手册,我们在搭建得时候是根据操作手册进行搭建的。
因为现在很多应用程序使用的技术都差不多,所以搭建环境的时候一些基本环境都是类似的,比如搭建Java环境,Mysql数据库环境,Tomcat 应用服务器,Ngnix应用服务器 这些常用技术搭建都是类似,只不过企业内部还用到一些特殊的内部操作,如果没有操作手册,开发也会详细告诉我们的。
搭建环境,一般也都是在Linux环境下部署的,主要就是用一些Linux的常用命令。

  1. 性能测试的测试用户是怎么来? (如何批量创建账号?)

参考回答:
可以使用直接在数据库中创建账户信息 ,使用Mysql的存储过程,批量添加数据
存储过程参考
Mysql-06
也可以在JMeter 通过是用csv数据文件 + 设置线程数的方式来进行批量注册账号。
验证码问题
如果网站注册账号的时候需要使用到验证码,让开发在测试环境中修改代码设置一个万能码,比如我们后台使用的是000000 作为万能验证码。

  1. 你们平时是怎么做性能测试的?

参考回答:

  1. 性能场景和指标 (上级领导制定)
  2. 作为测试人员,根据场景 编写 测试脚本
    1. 创建http请求
    2. 业务之间有上下游关联,—正则表达式或者json提取器
    3. 准备测试数据—数据存放在csv文件中
    4. 添加聚合报告
  3. 运行这些场景的时候,监控服务器
    1. 监控服务器常用方法: 简单 使用 top命令
    2. 也可以使用 nmon 工具进行监控,导出报表

  1. 执行完成之后,需要关注的点: 2000并发,10分钟
    1. 响应时间 (最大响应时间不超过3秒, 95%响应时间控制在1秒之内)
    2. 错误率 不超过0.1%
    3. 服务器的CPU使用率 90%以内 (4核心的CPU)
    4. 内存使用 (服务器为8G内存,不超过2G)
  2. 如果性能不达标,我们会让开发进行程序优化或者运维进行服务器端优化
    1. 程序优化: 代码优化,数据库优化(索引,数据库集群)
    2. 服务器端优化:修改一些参数,增加服务器。
  3. 优化完成之后,再进行压测,看性能是否提高。
  4. 最后,整个团队一起整理测试报告。