Lyraa's Blog

性能测试及常用工具

2020-06-02

软件的六大特性:

  1. 功能性
    一组功能及其指定的性质有关的一组属性。适合性、准确性、互用性/互操作性、依从性、安全性。
  2. 可靠性
    在规定的一段时间和条件下,软件维持其性能水平有关的一组软件属性。成熟性、容错性、易恢复性。
  3. 可用性
    与使用的难易程度及规定或隐含用户对使用方式所做的评价有关的软件属性。易理解性、易学性、易操作性。
  4. 效率
    在规定条件下,软件的性能水平和所有资源之间的关系有关的一组软件属性。时间特性、资源特性。
  5. 可维护性
    与进行指定的修改所需的努力有关的一组软件熟悉。易分析性、可修改性、稳定性、可测试性。
  6. 可移植性
    与软件可从某一环境转移到另一环境的能力有关的一组软件属性。适应性、易安装性、一致性(遵循性)、可替换性。

测试所需要的能力:

沟通(团队) + 思维(发散) + 理解(流程) + 技术(常用工具) + 高级编程(Python)

性能测试需要考虑的方面:

项目时间,成本,公司,环境,网络。

不同人眼中对性能的理解

  1. 用户眼中:响应时间,客户端 CPU(2-5-8, 3-5-10, 华为 3-5-7)
  2. 开发人员眼中:内存使用不合理(泄露,不足),数据库索引,死锁,表的设计(12306)。
    底层框架设计(架构师)。
  3. 系统管理人员眼中:服务器的资源使用率(CPU、内存、磁盘、网络),承受最大用户数、最佳用户数。
  4. 前端性能:资源(图片、JS、CSS大小、数量)

性能测试的分类:

并发测试、压力测试、负载测试、大数据量测试、基准测试、稳定性测试、强度测试、配置测试、疲劳测试。

  1. 并发测试:同时操作某一个功能,业务(电商的秒杀下单)的TPS(Transaction Per Sec 每秒事务数);
    登录并发,双十一前夕23点至24点,最佳,最大;
    下单并发,查询大数据量并发,支付接口。

  2. 压力测试:最大负载数,性能瓶颈(8s/CPU80%),找性能问题的时候需要把服务器压崩溃(长期较高压力,瞬时极高压力)。

  3. 负载测试:瓶颈(CPU到80%时,最大承受多少用户,前提是不能压崩溃服务器,保证用户的正常体验)。

  4. 大数据量测试:查询(数据库里存在大量数据),数据库的索引、数据库的缓冲命中率

性能测试指标:

  • 事务:一般是指要做或者所做的事情。(完成某一业务或某一流程的集合)。
  • 并发数:
  • 响应时间:
  • 吞吐量:网络吞吐量、系统吞吐量。
  • 每秒事务数(TPS):并发数/响应时间。
  • 点击率和访问量:
  • 资源利用率:

性能测试的完整流程:

  1. 获取用户的性能指标(并发数,TPS,响应时间),在 SRS 文档中有描述,没有描述的找产品经理。
  2. 数据建模分析性能测试点,哪些功能需要性能测试:
    1)核心业务:下单、购物流程;
    2)用户使用频繁的功能:登录;
    3)大量数据的查询功能:交易记录、搜索商品;
    4)第三方接口:支付、短信接口、实名认证接口;
    5)Web 前端(资源)的性能测试
  3. 设计性能测试的场景(性能测试用例)
    1)单个业务的并发测试、压力测试、负载测试。
    2)多个业务并发测试、负载测试(混合场景)。
  4. 搭建测试环境(应用服务器和数据库的服务器分离,方便定位分析问题)
  5. 准备数据(比如大量的测试账号):
    1)找开发人员
    2)自己做(利用脚本)
  6. 开发脚本(主要优化、参数化、检查点、关联、头信息、思考时间、集合点)。
  7. 运行脚本前需要提前监控服务器的资源,运行大量数据时,还需要添加负载机(负载均衡)。
  8. 获取运行时和监控的数据,分析性能指标、定位优化性能。
  9. 编写测试报告(分析数据,评估结论)。
  10. 上线后,监控资源,持续优化。

性能测试工具——LoadRunner

Loadrunner11(4GB):Win7 + IE8/9
Loadrunner12(1.5GB):Win10 + IE10/11
Win10 安装Loadrunner11,可以使用 Chrome,必须先安装 Fiddler 并开启工具。

  1. Loadrunner 工具组成:4部分
    1)vugen:脚本生成器
    功能:开发脚本、录制脚本(模拟用户行为)
    2)controller:负载控制器
    功能:执行脚本、监控资源(系统资源、应用服务器、web应用、数据库)
    3)analysis:结果分析器
    功能:把执行脚本时生成的数据以及监控资源获取的数据进行统计分析(性能测试简报)。
    4)LG:负载生成器-负载机
    功能:测试大量数据时,高并发、高负载
    (普通一台 PC 机,最大并发数 200 - 500 人,最大负载数 5000 - 10000 人)。

  2. Loadrunner 自带的 webtours(web端订票系统,端口号1080)

    1)开启服务:start web server(开始-程序-HP Loadrunner-samples-web-start web server)
    右下角出现【X】图标,绿色正常,如果红色说明 1080 端口被占用。
    2)打开 http://127.0.0.1:1080/webtours
    3)默认用户名:jojo,默认密码:bean
  3. 使用 webtours 进行性能测试流程:
    1)获得性能指标:并发数?(50并发,10w用户数-2w-1000人),响应时间 1-5-8s
    2)找性能测试点:订票(登录 - 城市 - 航班 - 支付),查询,登录,支付。
    3)场景设计:单个业务并发测试(单场景),多业务负载测试(混合场景)。
    4)选择测试工具(Loadrunner,Jmeter),环境(数据库mysql和应用服务器tomcat分离)。
    5)准备测试数据(在线用户数 - 并发数扩大 100 倍 5000 人,查询交易记录),找开发要数据库的表结构。
    6)用脚本自己做测试数据。

  4. Loadrunner 录制脚本
    1)熟悉业务流程,开始录制脚本(把每一步操作,添加事务)
    2)选择协议:B/S 架构选择 Web/HTML/http,C/S 架构选择 Socket 二进制。
    3)开始录制,录制过程中可以创建事务(事务记录的是某一系列操作的合集)。
    4)结束录制,等待生成代码。(代码中的思考时间就是用户没有动作的空闲时间,之后可以删除代码里的思考时间)。
    5)运行修改好的脚本。
    6)打开 视图 - 测试结果,查看。

  5. Loadrunner 录制时注意的问题:
    选项里面设置:选择录制模式 HTML(模拟点击) 或者 URL(模拟请求),选择字符集 UTF-8,关闭自动关联功能。

    Q:录制时不弹出 IE 浏览器
    A:需要使用 IE 8 版本。
    A:Internet 选项 - 高级 - 启动第三方浏览器扩展(不选)
    A:在开始录制中 - 要录制的程序 - 改为 IE 的绝对路径
    x86:C:\Program Files (x86)\Internet Explorer\iexplore.exe
    amd64:C:\Program Files\Internet Explorer\iexplore.exe

    Q:录制时,进度条显示正在录制 0 个事件。
    A:录制时捕获的级别(默认套接字),点击 打开 - 开始录制 - 选项 - 网络 - 端口映射,选择其他捕获级别。
    A:可能有系统数据保护。打开 系统属性 - 高级系统设置 - 性能选项 - 数据执行保护 - 添加白名单
  6. Loadrunner 参数化:

    1)先选中需要作为参数的字符串,右键,点击替换为参数,然后创建参数(参数类型一般为File)。
    2)点击工具栏的 Vuser - 参数列表,选择需要设置的参数名称,点击用记事本编辑,之后添加需要用到的参数(一行一个)。
  7. Loadrunner 添加文本检查点:

    1)点击工具栏中的“树”,找到注册成功的页面快照,选中具有特性的字符串(比如帐号),右键,点击添加文本检查(web_reg_find)。
    2)设置 保存计数 的值(就是字符串在页面快照中出现的次数,比如就是1)。
    3)回到工具栏中的“脚本”页面,可以发现代码中插入了 web_reg_find 函数,可以将函数的参数替换为参数列表中的参数。
    4)运行之前,点击菜单栏 Vuser - 运行时设置,设置好迭代次数,就可以在运行的时候对参数列表中的参数进行自动替换了。

扫描二维码,分享此文章