您当前的位置: 首页 > 

网易测试开发猿

暂无认证

  • 3浏览

    0关注

    221博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

软件测试高阶性能测试学习教程,清晰简洁易懂

网易测试开发猿 发布时间:2022-05-23 16:25:58 ,浏览量:3

目录:导读
    • 一、性能测试概述
    • 二、性能测试流程
    • 三、Jmeter性能测试

一、性能测试概述

指通过特定方式,对被测系统按照一定策略施加压力,获取系统响应时间、TPS(TransactionPerSecond=请求或者事务数/平均响应时间)、吞吐量、资源利用率等性能指标,以期保证生产系统的性能能够满足用户需求的过程

一般是指大数据量的测试 考虑点: 应用在客户端性能的测试:监听客户端响应速度,cpu占用率等

应用在网络上性能的测试:网络配置查看、监控,又包括网络链路上的包转发时延、吞吐量、带宽等指标分析

应用在服务器端性能的测试:服务器的内容消耗,吞吐量,cpu等

目的: 客户有明确性能要求 考察目前系统性能(容量测试),测试系统的压力点 需要分析可能对系统造成瓶颈的逻辑业务,再进行性能测试,找出系统性能瓶颈 了解系统在长时间的压力下性能状况(强度测试)

性能测试环境: 硬件环境 被测服务器硬件配置,用于加压客户端的机子配置,CPU 内存等

软件环境 被测系统的架构,前端、中间件、服务器(指运行系统软件服务器,如tomcat)、数据库、测试环境部署信息以及性能测试工具信息

网络环境 找出系统性能瓶颈,可在广域网环境进行,其它性能测试可在局域网进行,排除网络干扰

备注: 性能测试的环境要独立于功能测试环境,一般在没有其它干扰被测系统的情况下,进行性能测试

二、性能测试流程

业务学习阶段 通过查看文档,手工操作系统来了解系统

需求分析 分析系统非功能需求,圈定性能测试的范围,了解系统性能指标

工作评估 工作量分解,评估工作量,计划资源投入(需要多少人力,多少工作日来完成性能测试工作)

设计模型 圈定性能测试范围后,把业务模型映射成测试模型

编写性能测试计划 和业务功能测试计划类似,确定测试范围,性能测试工具,性能测试场景设计,时间和相关人员等

脚本开发 录制或者编写性能测试脚本,开发测试挡板程序等

性能测试环境准备 环境包含服务器和负载机两部分

测试数据准备 根据计划中的场景设计准备被测系统的主数据与业务数据,主数据是保证业务能够运行畅通的基础,业务数据是运行业务过程中产生的数据

测试执行 根据场景执行测试,监控整个测试过程,获取测试过程中产生的相关性能数据

分析测试结果 把测试过程中产生的性能测试数据进行分析,判断是否存在性能问题

性能分析与调优 对性能测试过程中暴露出来的问题进行分析,找出原因,并于相关开发人员(DBA、运维、开发等)一起解决该性能问题

性能测试报告 根据之前的测试过程,对测试结果进行报告,包含过程中发现的问题,常用的性能指标测试值

评审 对性能测试报告的内容进行评审,确认问题,评估上线风险 性能测试主要提交成果 测试计划–测试脚本–测试程序–测试总结报告

测试模型 比如一个支付系统需要与银行的系统要进行交互,由于银行不能提供支持,这时开发人员会开发程序代替银行系统功能(这就是挡板程序,mock程序),保证此功能的性能测试能够开展,这个过程就是设计测试模型

比如我们要对论坛进行性能测试,根据需求了解到一般大家发帖或回帖前都会先登录,那么在开发脚本时就要把登录和发帖、回帖场景绑定在一起进行测试

这就是测试模型,通俗讲就是性能测试用例设计加性能测试实现方案,用例只关注业务,模型还需关注如何实现,是否具有可操作性,可验证性等问题,最后还要根据不同的测试目的组合成不 同的测试场景

浏览器与服务器交流的模式:借助该模式更好的理解B/S架构系统的浏览器与服务器之间的数据传递,有助于理解性能测试

挡板 模拟第三方返回数据,比如京东使用微信支付需调用微信接口,单独测试过程中大金额测试,则不适合直接调用微信接口

这时不需去请求微信接口,而是由公司开发一个程序来扮演微信,并返回和微信一样的数据给被测试程序,这个即挡板

三、Jmeter性能测试

逻辑控制器 逻辑控制器可以控制采样器(samplers)的执行顺序 控制器需要和采样器一起使用 放在控制器下面的所有的采样器都会当做一个整体,执行时也会一起被执行

事务控制器 右键线程组->添加->逻辑控制器->事务控制器 事务控制器属于逻辑控制器中的一种 可用于测试执行嵌套测试元素所花费的总时间,即相当于用户进行一系列操作的测试,只有整个事务控制器定义的事务成功,才算成功,事务中任意接口执行失败,那么事务都将失败

字段选项 Generate Parent Sample 如果选中,则生成样本作为其他样本的父项,只考虑事务性能,不考虑单个接口性能,否则样本将作为独立样本生成 Include duration of timer and pre-post processors in generated sample 是否在生成的样本中包括计时器,预处理和后处理延迟 默认值为false,不建议选择,若选择会把一些额外时间算入总时间

Jmeter中通过聚合报告来查看性能测试结果 右击线程组->添加->监听器->聚合报告

计时器 集合点 性能测试过程中,需根据场景做狭义的并发,此时需要用到集合点,集合点能够尽量让虚拟用户同一时刻发送请求,在Jmeter中集合点是通过定时器来完成的 用来控制取样器的执行时机,有固定定时器,随机定时器等

同步定时器 右击线程组->添加->定时器->SynChronizing Timer 用来保证取样器在同一时刻向服务器发起负载,考虑到线程运行的时间快慢与场景的需要,也提供了同步线程数量的设置

固定定时器 右击线程组->添加->定时器->固定定时器 在我们测试场景中,5秒钟登录50个用户,但是有要求其中每10个用户产生一次并发,这个时候可以在登录的时候设置固定定时器,一次凑齐10个在发送请求

远程连接 负载机 更改配置文件 jmeter.properties 更改 server.rmi.ssl.disable=false,将值改为true 添加 remote_hosts=192.168.2.240:1099,192.168.1.97:1099 IP地址和端口 启用 server_port=1099,删除前面的#号 需打开jmeter_server.bat 如报错找不到rmi_keys…文件,需在jmeter.properties文件中更改server.rmi.ssl.disable=false,将值改为true

控制机 需配置 jmeter.properties 中添加远程hosts 注意点 每台机器上jmeter和jdk、插件最好一致 配置CSV参数文件每台机器中路径需与设置的一致 如安装了虚拟机,需禁用虚拟机网络

关注
打赏
1665054478
查看更多评论
立即登录/注册

微信扫码登录

0.3051s