软件测试——性能测试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进行规格选择与性能压测。
目录
相关文章
|
13天前
|
敏捷开发 Java 测试技术
探索软件测试中的自动化测试框架
在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的不断进步和软件项目的日益复杂化,传统的手动测试方法已经无法满足高效、准确的测试需求。自动化测试作为一种提高测试效率和质量的有效手段,越来越受到开发者和测试者的青睐。本文将深入探讨自动化测试框架的重要性、常见的自动化测试工具以及如何选择合适的自动化测试框架。
37 10
|
21天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
2月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
2月前
|
测试技术 UED
软件测试的艺术:探索性测试的力量
【10月更文挑战第6天】在软件开发的世界中,测试是确保产品质量的关键步骤。传统的测试方法往往遵循严格的脚本和预定义的路径进行,但探索性测试(ET)则提供了一种更为灵活、创造性的替代方案。通过模拟真实用户的行为和思考过程,ET能够揭示那些传统测试可能遗漏的问题。本文将深入探讨探索性测试的核心原则、实施策略以及它如何提高软件测试的效率和有效性。
|
16天前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
26 1
|
25天前
|
测试技术 开发者 UED
探索软件测试的深度:从单元测试到自动化测试
【10月更文挑战第30天】在软件开发的世界中,测试是确保产品质量和用户满意度的关键步骤。本文将深入探讨软件测试的不同层次,从基本的单元测试到复杂的自动化测试,揭示它们如何共同构建一个坚实的质量保证体系。我们将通过实际代码示例,展示如何在开发过程中实施有效的测试策略,以确保软件的稳定性和可靠性。无论你是新手还是经验丰富的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
23天前
|
jenkins 测试技术 持续交付
软件测试中的自动化测试策略
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和效率的关键工具。本文将探讨自动化测试的重要性、实施策略以及面临的挑战,旨在为软件开发团队提供实用的指导和建议。
|
1月前
|
测试技术
探索软件测试中的“思维侧翼”——如何以创新思维引领测试策略###
本文旨在探讨软件测试领域中,如何通过培养与运用创新思维,提升测试策略的有效性与效率。不同于传统的技术解析或理论阐述,本文将以“思维侧翼”为喻,启发读者从不同维度审视软件测试,寻找突破常规的思路与方法。我们相信,在快速迭代的软件开发周期中,灵活多变且富有创造力的测试思维,是发现潜在缺陷、保障产品质量的关键。 ###
|
1月前
|
测试技术 定位技术 UED
软件测试的艺术:探索性测试的深度与广度
【10月更文挑战第22天】在软件开发的广阔舞台上,测试扮演着不可或缺的角色。本文将带领读者深入理解探索性测试(Exploratory Testing)的精髓,揭示其在现代软件质量保证中的价值。我们将通过实际案例、生动比喻和具体步骤,展现如何像艺术家一样进行软件测试,确保产品质量的同时,提升测试的效率和乐趣。文章不仅适合初学者建立测试基础,也能帮助资深测试人员深化对探索性测试的理解和应用。
|
1月前
|
监控 安全 jenkins
探索软件测试的奥秘:自动化测试框架的搭建与实践
【10月更文挑战第24天】在软件开发的海洋里,测试是确保航行安全的灯塔。本文将带领读者揭开软件测试的神秘面纱,深入探讨如何从零开始搭建一个自动化测试框架,并配以代码示例。我们将一起航行在自动化测试的浪潮之上,体验从理论到实践的转变,最终达到提高测试效率和质量的彼岸。