测试老鸟总结,性能测试如何做?常见异常有哪些?解决方法...

news2025/1/13 13:22:01

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

常见的性能异常

在性能测试过程中,常见的异常有几种:
响应时间变得超长,同时TPS可能也会出现降低或者一直维持不动。因为系统只能处理50个并发,但是给它来个60、70个并发,这时系统处理不过来就会出现排队,所以响应时间也就变长。

服务器压垮了、宕机。

服务器没垮,但可能服务垮了,这时由于服务器还能请求成功,所以接口状态码有可能还是返回200,但实际上所有请求的返回可能就直接是一个异常。

性能测试前提

由于性能测试并非所有场景或者所有模块都需要做,通过都是挑选关键点进行,评估条件大概有以下这些:

有主管部门、监管部门审查的模块;
涉及生命财产安全的;
大型的新系统;
核心系统;
架构调整;
业务剧增;
重大缺陷修复;
具有可测性,可以量化性能指标的;

环境准备

在做性能测试前首先要选择性能测试工具,目前常用的性能工具有jmeter、loadrunner,另外python也有一个做性能测试的模块叫“locust”,按照项目或公司需求去选择测试工具即可。

产生压力的环境的选择比较随意,一般做分布式的话,推荐压力机都是Linux系统,保证每个压力机的网段是同一个,jmeter、java版本最好都保持一致。

被测环境要使用一个独立的环境,既不是生产、也不是功能,被测环境必须是要独立的。然后环境的硬件配置尽可能贴近生产,这样才能最好的模拟生产环境的性能情况。

为啥不能用生产环境做性能测试?
很关键一点,万一把生产环境压垮了呢?
其次性能测试过程会产生大量的测试数据,如果这些数据都存到生产环境可能会对生产环境的数据造成影响,并且未来也不好维护。

测试步骤

1、性能测试准备
需求分析,熟悉业务;
明确性能测试目标(明确关注指标)

了解软件功能、架构
指定测试计划,做好工作量评估;

指定测试模型(编写测试用例)

2、性能测试环境准备
工具选型及准备;
被测系统环境搭建(服务器、服务版本更新、数据库数据准备);
网络配置;

3、性能测试脚本开发
选取协议(选用的工具是否支持项目的协议);
制作脚本;
调试脚本;
验证脚本;

4、性能测试执行
试运行
场景执行

5、结果分析与调优
得到分析依据:结果图表
分析思路:服务器硬件瓶颈 > 网络瓶颈 > 服务器os瓶颈(参数配置、数据库、web服务器) > 应用瓶颈(sql语句、数据库设计、业务逻辑、算法);
调优;
修改脚本或场景;

6、测试报告与结果跟踪
性能测试报告
性能测试问题跟踪

常见异常

1、请求内容出现乱码
HTTP请求取样器中的内容编码加上“utf8”或“utf-8”

请添加图片描述

请求头,content-type的值后面加上“;charset=utf-8”, 例如:“application/json;charset=utf-8”

如果请求体为“参数”类型,勾选参数的“编码”。(注意,这里的编码是urlencode编码。通常不管是什么情况,这里都建议勾选编码)

请添加图片描述

2、响应内容出现乱码
需要修改jmeter/bin目录下的jmeter.properties配置文件。找到sampleresult.default.encoding。常见是修改为utf8或gbk或gb2312

3、保存响应的到文件,文件为CSV时数据格式不对。
直接保存为csv文件时,会发现所有数据都挤在一格内了,显然不符合CSV逗号分隔的原理。这里推荐是保存为txt或者xlsx。
如果非得要保存为csv,那需要修改jmeter的配置属性:jmeter.save.saveservice.default_delimiter=,

4、连续多次运行性能测试后,压力数据越来越乱了
在做性能测试时,不要连续去执行性能测试,在前一轮性能测试结束的时候,要休息一会,等待服务器的压力释放再开始下一轮性能测试。不然,因为前面的性能测试导致服务器压力过大,未释放而影响到后续性能测试结果。

5、网络不通
很多时候要看网络通不通,都会用ping命令去试试,但最好的做法是用telnet命令

telnet ip:端口

要用telnet需要电脑先启动Telnet服务

请添加图片描述

生产环境做性能测试

一般中小微企业是不建议用生产环境做性能测试的,但如果真要做也不是不行。

用生产环境做性能测试需要具备以下几点:
1、影子库表,用于存储性能产生的垃圾数据
2、另外一台日志服务器,因为在生产做性能测试除了会产生大量垃圾数据之外,还会有大量的垃圾数据,因此最好找另一台服务器来存这些垃圾日志。
3、做好数据隔离的判断,提供两个方案:
在请求参数中加上一个用于标识当前请求是否为性能测试产生的数据,以此来判断该往哪个数据库存;
使用请求头中的user-agent进行判断,这个甚至可以在网关上就做判断本次请求该发往哪个服务;

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人都有自己的梦想和追求,但只有不断奋斗才能实现它们。不要停留在舒适区,去挑战自己的极限,展现出你的无限潜力。世界因你而不同,加油!

只有敢于追梦、不断努力的人,才能活出自己想要的生活。迎难而上,没有什么是不能克服的。别让懒惰、拖延成为你的遗憾,奋斗,是你最好的选择。加油!

成功需要迎难而上,需要坚持不懈的努力。曾经的挫败只是暂时的,失败并不等于终止。你要有信念、有勇气,不断奋斗,才能成就自己的人生价值。加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.Introduction: Hands-on Graph Neural Networks

PyG(PyTorch Geometric)是一个基于PyTorch的库,用于轻松编写和训练图形神经网络(GNN),用于与结构化数据相关的广泛应用。博客好久没有更新了,恰逢1024创作纪念日,浅浅更新一下吧。 这…

logging模块

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 logging模块 日志级别修改logging模块默认行为logger对象 专栏:《python从入门到实战》 日…

MACH SYSTEMS网关:SAE J2716(SENT) 转 RS-232/CAN

双通道SAE J2716(SENT)至RS-232/CAN总线网关,具有两个双向SENT通道和RS-232(SENT-RS232)或CAN总线(SENT-CAN)接口。两种变体还提供两个模拟输出,可以直接将输入SENT数据转换为模拟电…

VMware SD-WAN 5.1 - 软件定义的 WAN

请访问原文链接:https://sysin.org/blog/vmware-sd-wan-5/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 产品概述 软件定义的 WAN (SD-WAN) SD-WAN 的功能特性 简化的 SD-WAN 了解软件定义的 WAN (SD-WAN) 的概…

Java后台POST请求以application/x-www-form-urlencoded;charset=utf-8格式以及raw的JSON的请求方式

一、Java后台POST请求以application/x-www-form-urlencoded; 1、引入依赖&#xff1a; <dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version> </dependency&g…

Gartner发布中国容器管理平台供应商识别指南,灵雀云实力入选

近日&#xff0c;国际权威分析机构Gartner发布了《Tool: Vendor Identification for Container Management in China》报告&#xff0c;该报告旨在帮助IT基础架构领域相关人员选择在中国提供容器管理服务、解决方案和平台的供应商&#xff0c;为容器产品选型提供专业指导。灵雀…

工作流调度系统 Azkaban使用方法大全(二)

1 案例 1.1 Hello World first.project azkaban-flow-version: 2.0first.flow nodes:- name: jobAtype: commandconfig:command: echo "hi 大佬"打包为zip&#xff0c;即可上传 name&#xff1a;job名称 type&#xff1a;job类型。command表示要执行作业的方式…

《Java8实战》第7章 并行数据处理与性能

7.1 并行流 Stream 接口能非常方便地并行处理其元素&#xff1a;对收集源调用 parallelStream 方法就能将集合转换为并行流。并行流就是一个把内容拆分成多个数据块&#xff0c;用不同线程分别处理每个数据块的流。 public long sequentialSum(long n) { return Stream.itera…

跌倒检测和识别1:跌倒检测数据集(含下载链接)

跌倒检测和识别1&#xff1a;跌倒检测数据集(含下载链接) 目录 跌倒检测和识别1&#xff1a;跌倒检测数据集(含下载链接) 1. 前言 2. 跌倒姿态&#xff1a;站立-弯腰(蹲下)-躺下 3. 跌倒检测数据集&#xff1a; &#xff08;1&#xff09;Fall-Down-Det-v1 &#xff08;2…

k8s client-go 程序实现kubernetes Controller Operator 使用CRD 学习总结

k8s client-go 程序实现kubernetes Controller & Operator 使用CRD 学习总结 大纲 1 定义CRD2 client-go自动代码生成3 client-go操作CR4 创建镜像5 配置权限6 部署到k8s 基础流程 这里使用client-go实现编写&#xff0c;相对于kubebuiler这些工具生成脚手架工程要麻烦…

学习零碎-txt转json

import re import jsondef txtToJson():# 文件路径path "./prot.txt"# 读取文件with open(path, r, encoding"utf-8") as file:# 定义一个用于切割字符串的正则# seq re.compile(":")result []# 逐行读取for line in file:lst line.split(#)…

面试官:“你会组件化开发操作吗?它的优势在哪?”

随着 Android 版本的不断更新升级和用户对 APP 产品需求技术越来越高&#xff0c;相对的各大公司对 Android 开发者们设置的招聘门槛也越来越高。 至于如何去看一个开发者水平的高低&#xff0c;一般看面试官会怎么问&#xff0c;会问哪些部分的技术内容&#xff1f; 一般公司…

【AI前沿】chatgpt还有哪些不足?

博客昵称&#xff1a;吴NDIR 个人座右铭&#xff1a;得之淡然&#xff0c;失之坦然 作者简介&#xff1a;喜欢轻音乐、象棋&#xff0c;爱好算法、刷题 其他推荐内容&#xff1a;计算机导论速记思维导图 其他内容推荐&#xff1a;五种排序算法 在这个愉快的周末让我们聊一下Cha…

【C语言】文件的输入与输出

在此之前&#xff0c;我极少使用C语言处理文件。因为我认为使用Python、matlab处理文件是及其方便的。 事实果真如此吗&#xff1f; 文章目录 一、与文件进行通信1.1 文件的定义1.2 文本文件和二进制文件1.3 底层 I/O 和 标准I/O1.4 标准文件1.5 标准 I/O 二、文件的打开和关闭…

flume 的Channel的种类

目录 1、MemoryChannel 2、FileChannel 3、KafkaChannel Flume拦截器 消息队列传输消息 1、MemoryChannel 数据放在内存中,会在Flume宕机的时候丢失数据,可以⽤在对数据安全性要求没有那么⾼的场景中⽐如⽇志数据。 2、FileChannel 不会丢失数据,因为数据是放在磁盘上边的…

前端使用国密SM4进行加密

目录 需求【方法1】 - 使用 sm4util 依赖【方法2】sm4.js引入1. /public/sm4.js2. body 标签上引入该文件3. 使用 - ECB 模式加密 【方法3】1. 本地写 js 文件2. 使用 - ECB 模式加解密 需求 前端/后端使用 国密SM4 进行加密/解密&#xff0c; 【注意】前后端配合加解密时&…

【数据结构】线性表之——“顺序表”

文章目录 前言顺序表主体结构顺序表操作函数介绍顺序表操作函数实现实现顺序&#xff1a;顺序表的初始化&#xff1a;顺序表插入函数&#xff1a;头插尾插指定位置插入 顺序表打印函数查找顺序表数据顺序表删除函数头删尾删指定位置删除 修改顺序表销毁顺序表 文件分类test.cSe…

webpack5搭建react框架-生产环境配置

webpack5配置react基础生产环境 一、前言 在项目构建时不同的环境下会有不同配置&#xff0c;在前面文章中已经使用webpack5配置好了基础环境和开发环境&#xff0c;但是在生产环境时有些配置和开发环境是不需要的&#xff0c;有些是可以在优化的&#xff0c;所以下面继续生产…

分支和循环语句——1

老铁们&#xff0c;这是博主初识C之后的第一篇C语言学习博客&#xff0c;希望可以给你们带来帮助。 文章目录 一、什么是语句? 二、分支语句 1、if语句 2、switch语句 三、while循环 一、什么是语句? C语句可分为以下五类&#xff1a; 1. 表达式语句 2. 函数调用语句…

模拟不同MIMO-OFDM方案的MATLAB代码(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果​ &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 MIMO技术指在发射端和接收端分别使用多个发射天线和接收天线&#xff0c;使信号通过发射端与接收端的多个天线传送和接收&…