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

news/2024/11/29 0:32:45/

目录:导读

    • 前言
    • 一、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.ppmy.cn/news/48753.html

相关文章

Nacos简介 安装 配置

简介 什么是注册中心 注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,…

强训之【查找组成一个偶数最接近的两个素数和二进制插入】

目录 1.查找组成一个偶数最接近的两个素数1.1题目1.2思路1.2.1 暴力解法1.2.2 取中判断 1.3代码1.3.1暴力求解代码1.3.2 取中判断代码 2.二进制插入2.1题目2.2思路2.3代码 3.选择题 1.查找组成一个偶数最接近的两个素数 1.1题目 链接: link 描述 任意一个偶数(大于…

JAVA开发中的六大原则

JAVA开发中的六大原则,也被称为SOLID原则,是软件开发中常用的一组设计原则。这些原则提供了实现高质量、易于维护和可扩展软件的基本策略。 以下是JAVA开发中的六大原则以及它们的详细说明: 单一职责原则(Single Responsibility…

通过API接口获取下来的数据需要怎样才能应用

获取到API接口下来的数据之后,为了能够在自己的项目或应用中进行应用开发,需要进行一些必要的数据处理和解析,主要包括以下几个方面: 数据格式解析:数据获取下来通常是以JSON或XML等格式进行返回的,需要对…

怎么压缩图片的体积大小,4款软件分享

怎么压缩图片的体积大小?因为在日常生活和工作中,我们常常会遇到需要压缩图片大小的情况。图片的大小是由像素点数量和每个像素的颜色深度共同决定的,一般来说,像素点数量越多,每个像素的颜色深度越高,图片…

替换算法与写策略(详解)

一.基础认知 1.个人理解 替换算法是用于管理高速缓存(Cache)中数据的一种策略,当高速缓存已满并需要为新的数据腾出空间时,替换算法会决定哪些数据应该被从高速缓存中替换出去。 2.基础认知 首先,我们需要知道计算…

Forcespro和Casadi的使用心得

一、前言 很久没更新过了,这次更新一下关于forcespro和casadi的使用心得。 二、学习方法 建议先学forcespro,因为它的文档相对来说比较完整,更易学习。至于forcespro的许可证以及安装,我前面的文章里有,其它的查使用…

结构思考力--李忠秋

理解篇–透过结构看世界 结构化思考的底层逻辑 第1讲:透过结构看世界,洞悉事物本质 世界万事万物都是存在其结构的,比如一年四季分为春夏秋冬,一家公司组织结构依次从董事、事业群、事业线及业务线等; 因此我们通过结构去看事物…