软件测试——性能测试2

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 软件测试——性能测试

软件测试——性能测试1:https://developer.aliyun.com/article/1521846

九、断言

作用:用于就检查测试中得到的响应数据是否符合预期,用于保证性能测试过程中的数据交互与预期一致,主要用于做调试,在进行压力测试时,断言可以禁用。

目的:在request的返回层面加一层判断机制。

实现过程

  1. 在请求下添加断言(一个请求可以添加多个断言),请求不同,添加的断言不同;
  2. 添加一个断言结果的监听器,通过断言结果可以看到是否通过断言,若通过,断言结果会打印一次请求的名称,一个请求的所有断言都通过了才算请求成功。

Jmeter中的断言和LoadRunner中的检查点是一致的。

常用断言:

响应断言:判断返回的内容是否满足预期;

作用对象:响应报文中的所有对象(响应代码、响应文本、url等等)

在响应断言下添加断言结果:

大小断言(size断言):用来判断返回内容的大小;

作用对象:返回信息,响应报文,添加size断言,必须指定大小和长度

断言持续时间:判断服务器的响应时间是否达到预期;

作用对象:服务器;

BeanShell断言:与Java语言相结合的断言,用于验证脚本。

十、关联

在测试过程中需要引用前面的数据,但是数据是经常发生变化的,那么要获取使用这些数据,就需要使用关联。

例如:第二个请求需要第一个请求返回数据的结果作为自己的输入数据,此时就需要使用关联将这两个数据对接起来。

具体实现步骤:在第一个请求之后添加后置处理器;

后置处理器的作用:在请求结束之后,处理响应结果的特定数据,提取需要的数据。


在关联的过程中,会通常使用到正则表达式提取器。


对于Jmeter的参数说明:


引用名称:下一个请求要引用的参数名称,比如填写name时,就需要用${name}进行引用;


正则表达式:


():括起来的部分表示要提取的;

. :匹配任何字符串;

+:一次或多次;

?:在找到第一个匹配项后停止;

模板:用

引用起来,如果正则表达式中有多个正则表达式,则可以是$2

$2

3$等等,

匹配数字:0代表随机取值,1代表全部取值,通常情况下使用0;

缺省值:如果参数没有取到值,就要给赋给默认值。

常用的正则表达式操作符:


后置处理器中的正则表达式:

十一、JDBC请求

使用Jmeter通过jdbc请求来操作数据库。

准备工作:准备数据库环境(创建表、准备数据)

实现步骤:

1、添加jar包

  • 直接将jar包复制到jmeter的lib目录(mysql推荐使用)
  • 通过Test Plan浏览加载(oracle推荐使用)

2、建立连接信息:在测试计划中,点击添加配置原件 -> JDBC Connection Configuration


3、添加JDBC请求

使用结果树查看响应结果:

十二、分布式测试

使用场景:在使用Jmeter进行性能测试时,对于高频大并发的数据单台电脑可能难以支持就需要进行分布式压测,即对客户端的压力进行分摊,也叫负载均衡。

原理

  1. 在使用Jmeter进行测试时,选择其中一台作为主控调度机,其余作为执行机;
  2. 执行时,主控机器会把每个脚本发送到每台执行机器上,执行机器拿到脚本就开始执行,执行机器不需要启动GUI界面;
  1. 执行结束后,执行机器会把结果回传给主机,主机收集所有的执行机器的测试数据进行汇总;

主控机器:生成脚本,调试脚本,汇总数据;

执行机器:运行脚本,回传数据给主控数据;

具体实现步骤

1、执行机器的设置

  • 在执行机上安装JDK和Jmeter(执行机和主控机的版本必须保持一致);
  • 添加环境变量;
  • 在启动bin目录下的:jmeter-server.bat;

易出现问题:提示无法启动,请按任意键/文件找不到


解决方案:进入apache-jmeter-5.2\bin\jmeter.properties文件,将server.rmi.ssl.disable设置为true,重新启动jmeter-server.bat,查看命令行窗口显示则表示启动成功。


2、主控机器设置:


准备测试脚本;

修改属性配置文件:jmeter.properties 文件,修改IP和端口号,在文件中查找remote_hosts,原默认信息是127.0.0.1表示本机,修改host信息:执行机器IP:端口号,执行机器2号IP:端口号,默认端口号是1099,执行时,确保1099未被占用(端口号可以进行自定义)

重新启动jmeter.bat;

在jmeter中点击运行,再点击远程启动,即可开启分布式测试。

十三、性能测试报告

测试报告的大纲:目的、项目简介、测试过程、测试结果以及项目总结。


性能测试报告的内容:概述、测试环境、测试目标(性能指标)、测试方法、测试数据分析、测试结论。


注意:在测试数据分析的过程中,必须按照不同的测试场景进行描述。


利用Jmeter生成html的测试报告:


方法一:


选择添加监听器中的聚合报告,将聚合报告输出到指定的csv文件,在jmeter的工具中选择

Generate HTML report;

html报告展示:

方法二:在命令行窗口输入命令来实现:

操作命令:jmeter -n -t 脚本的绝对路径.jmx -l 测试报告的文件名称.csv -e -o html报告的目录路径。

注意:报告的目录文件必须为空目录,测试报告文件也不能有数据,必须是空文件或者是不存在的文件。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
9天前
|
机器学习/深度学习 人工智能 算法
深入探索软件测试中的黑盒测试技术
本文旨在通过一个创新视角,探讨软件测试领域中的黑盒测试技术。我们将从一个全新的维度——测试用例的生成策略出发,分析如何提高黑盒测试的效率和效果。文章不仅会介绍传统的测试用例设计方法,如等价类划分、边界值分析等,还会结合最新的技术发展,讨论人工智能在黑盒测试中的应用前景。通过案例分析和实践应用,我们期望为读者提供一套系统的黑盒测试解决方案,以应对日益复杂的软件测试需求。
|
13天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第12天】探索性测试,一种灵活的测试实践,旨在通过自由形式的探索发现软件的潜在缺陷。它不依赖于事先编写的测试用例,而是鼓励测试人员利用直觉、经验和创造力来指导测试过程。本文将深入探讨探索性测试的核心概念、实施策略以及它如何增强传统测试方法的有效性。
|
7天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第18天】本文将深入探讨探索性测试(Exploratory Testing)在软件测试领域的重要性与实施策略。不同于传统的脚本化测试,探索性测试强调测试人员的主观能动性和创造性,以真实用户的角度出发,发现那些可能在规范性测试中被忽视的问题。文章首先介绍探索性测试的定义和优势,然后通过案例分析,展示如何有效执行探索性测试,最后讨论其在敏捷开发环境中的适应性以及如何与传统测试方法相结合以提升测试覆盖率和效率。
|
22天前
|
中间件 测试技术
软件测试之【软件测试概论二】
软件测试之【软件测试概论二】
9 1
|
22天前
|
安全 测试技术
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
22 1
|
23天前
|
编解码 测试技术 数据库连接
【软件测试】 软件测试生命周期与Bug
【软件测试】 软件测试生命周期与Bug
|
1天前
|
测试技术 Go
go的测试编写、断言、性能测试
go的测试编写、断言、性能测试
5 0
|
25天前
|
机器学习/深度学习 人工智能 安全
探索软件测试的新时代:AI驱动的测试自动化
本文深入探讨了人工智能(AI)如何革新软件测试领域,特别是测试自动化。随着AI技术的不断进步,它为测试自动化带来了前所未有的效率和准确性,从而极大地提高了软件开发的速度和质量。本文将详细介绍AI在软件测试中的应用,以及它如何帮助测试人员克服传统测试方法的局限性。
|
22天前
|
NoSQL 关系型数据库 MySQL
软件测试之【基于开源商城系统fecmall功能测试项目实例】
软件测试之【基于开源商城系统fecmall功能测试项目实例】
49 0
软件测试之【基于开源商城系统fecmall功能测试项目实例】
|
23天前
|
XML Web App开发 Java
【软件测试】关于Web自动化测试
【软件测试】关于Web自动化测试