害我走了8年弯路,接口测试和性能测试的区别原来是这几点,终于点通了......

news2024/9/22 23:23:01

目录:导读

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


前言

性能测试和接口测试的经典问题
问题:后端性能测试,一个功能其实都是由后台多个接口组成的。

例如一个单据的保存,可能后台需要调用几个接口。用LR录制这个功能做性能测试。和把它这个功能调用的几个接口连接起来一起做接口性能测试有什么区别呢?

从三个部分去阐述两者的关联和区别:
测试与工具的关系;
接口测试和性能测试的侧重点;
在实际场景中二者的配置区别;

Jmeter接口测试:https://www.bilibili.com/video/BV19b4y1t79V/

1、测试与工具的关系
首先我们要正视一个理念,LoadRunner和Jmeter只是一个工具,大力推崇容易让我们落入一种XXX就是性能测试的赶脚,其实不然,性能测试包含了工具(LoadRunner和Jmeter),工具仅仅是扮演了性能测试中的一个执行环节而已。

我们可以拿LoadRunner(Jmeter)做接口测试,当然也可以拿到做性能测试。所以工具是什么不重要,关键在于我们怎么去使用它,例如下面一个生活中的例子:铁锹。我们可以拿铁锹来铲土,也可以用铁锹来炒大锅饭,是不是就像LoadRunner既能做接口测试,又能做性能测试一样?

2、性能测试和接口测试的区别
测试分很多种,如果细细罗列,从单测,接口,功能,性能,UI,至少有五层,那其实区分这些测试类型的关键点就在于测试的侧重点不一样,接口测试是针对后端开发的接口(不一定是http的,也有可能是tcp的),而性能测试是偏重于产品的各方面各阶段性能(接口的性能,页面的性能,app的性能),可以说性能测试的覆盖度比接口更大一些。那我们就拿http类型的接口测试和性能测试举例,有啥侧重点区别呢?

简单来说,它俩区别就在于性能测试有多用户(并发)的概念,而接口测试只是单用户场景。我们做接口测试是是用于验证接口的请求和返回是否匹配(其实可以理解成接口测试也是一种功能测试);

而性能测试则是很多人同时在做这种接口测试,更侧重于真实的用户场景。因为我们研发完的产品投入市场后,不会就专门给某一个人使用功能,肯定是会有很多人同时在用我们的产品功能。那在这里,很多人同时在用其实就是性能的一个关键点。

所以总结第二点:性能测试近乎等同于很多用户同时在做接口测试。

3、在实际场景中二者的配置区别
我们就简单地拿LR做接口测试和性能测试的过程为例吧,拿LR执行测试对于大多数人来说就三步:录制接口(或者接口抓包),配置场景,执行测试场景。

录制接口这一步是没有区别的,因为我们刚才讲到过,性能测试其实也是一种特殊的接口测试。那配置场景这一步有区别吗?

可能很多人也说没有区别,但其实是有的,我们举例几个区别。如果是性能测试,首先要配置多用户(或者说多线程),而接口测试不用;

其次如果是性能测试,建议关掉断言(否则可能压不上去,因为断言会耗费LR或者Jmeter自身的性能);

最后如果是性能测试,如果压测不上去,还可能需要做分布式(简单来说,就是多台机器同时执行性能测试)。

那第三步:执行测试场景的时候有什么区别吗?刚才说到,接口测试一般是用断言来验证接口的正确性,那性能测试怎么去验证呢?在执行性能测试场景的时候,我们抛弃断言,要加入另外的校验方式:

最基本的三个点:
1、多用户下接口的响应时间,qps/tps(每秒请求量),出错率。
2、服务器上的资源监控(cpu,内存,io)。
3、被测服务的资源监控(多个服务的cpu,内存,io)以及错误日志。

以上三点都是衡量性能测试的标准,也是当执行性能测试场景出问题时候,用于定位问题的重要证据,所以我们可以知道,当接口测试出了问题,我们可以通过断言迅速知道出了问题;

而性能测试出了问题,需要从多个方面多个维度去调试定位,性能测试对于系统架构的理解能力要求更高!

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

并不是随着年纪的成长,每一个人都会变得更加成熟的,有的人就算是见得多,也不一定懂得多。凡事靠自己,也要相信自己。

人活着就是为了解决困难。这才是生命的意义,也是生命的内容。逃避不是办法,知难而上往往是解决问题的最好手段。

没有太晚的开始,不如就从今天行动。总有一天,那个一点一点可见的未来,会在你心里,也在你的脚下慢慢清透。生活,从不亏待每一个努力向上的人。

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

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

相关文章

Allegro如何知道组合操作命令的拼写

Allegro如何知道组合操作命令的拼写 前面介绍了如何知道单个操作命令的拼写,但如果是复合命令,就无法直观的通过命令来了解,如下图 Snap Pick to -Segment这个命令拼写是什么 如何知道,具体操作如下 点击File点击Script 出现Scripting窗口

itextpdf生成报文总结

1.使用itextpdfgradle引入依赖compile ("com.itextpdf:itextpdf:5.5.13") compile ("com.itextpdf:itext-asian:5.2.0") compile ("com.itextpdf.tool:xmlworker:5.5.13")参考:https://www.cnblogs.com/ssslinppp/p/4976922.htmlhttp…

Linux性能补丁升级,避免不必要的跨核Wake-Up

导读一个由英特尔发起的、旨在改进Linux内核公平调度程序代码的补丁系列,也看到了来自AMD工程师和其他利益相关者的测试/反馈,并继续进行改进。这个补丁系列的重点是避免在不必要的情况下发生过多的跨核唤醒(Cross-CPU Wake-up)。这样一来,这…

Unity合批处理

一.静态合批标记为Batching Static的物体(标记后物体运行不能移动、旋转、缩放)在使用相同材质球的条件下在项目打包的时候unity会自动将这些物体合并到一个大Mesh*缺点打包后体积增大运行时内存占用增大二.动态批处理不超过300个顶点不超过900个属性不包…

手机通讯录--课后程序(Python程序开发案例教程-黑马程序员编著-第5章-课后作业)

实例2:手机通讯录 通讯录是记录了联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人们可以在通讯录中通过姓名查看相关联系人的联系方式、邮箱、地址等信息,也可以在其中新增联系人,或修改、删除联系人信…

MySQL高级—约束与关系

🍎道阻且长,行则将至。🍓 目录 一、约束 1.约束的基本概念 2.分类 二、关系 1.一对多 2.多对多 3.一对一 三、多表查询 1.多查 2.连接查询 3.子查询 一、约束 1.约束的基本概念 数据库的表示用来存储数据的,为了保证…

PID控制算法详解

1. 前言 PID 即 Proportional(比例),Integral(积分),Differential(微分)的英文缩写。顾名思义,PID 控制算法是结合比例,积分和微分三种环节于一体的自动控制…

cs231n计算机视觉课程-(数据驱动方法)

姿态、环境、遮挡这些问题算法都因该是robust 课程中提到具体写一个识别猫咪的算法是不稳定的,容易出错的。 所以提出了Data-Driven Approach的方法 一个是训练函数, 这函数接受图片和标签,然后输出标签 另一个则是预测函数,输…

团队管理的七个要点

要掌握团队管理的要点和做好团队管理工作,不是一件容易的事,但也远非想象中那么难。首先,我个人比较推荐所有团队管理者都能阅读下《经理人参阅:团队管理》(注意该书仅可其官网获得)这本佳作。相信会为你带…

vue ssr的hydration问题

我的网站百家饭OpenAPI平台是vuepress写的,前段时间我还写了个专栏讲了vuepress2.0教学。 最开始我们的网站是类似公司网站的情况,以介绍为主,后来又加了一个openapi编辑器,编辑器主要在一个页面里面,vuepress还勉强可…

【Springboot系列】Springboot接管所有Controller,magic-api源码阅读

系列文章地址:Spring Boot学习大纲,可以留言自己想了解的技术点 最近在项目中使用了一个第三方的包 magic-api,节省了很多的时间,整体来说就是只用写sql就好了,不用写service,controller那些,全…

Flink从入门到精通系列(二)

3、Flink 部署 Flink 是一个非常灵活的处理框架,它支持多种不同的部署场景,还可以和不同的资源管 理平台方便地集成。 3.1、快速启动一个 Flink 集群 3.1.1、环境配置 Flink 是一个分布式的流处理框架,所以实际应用一般都需要搭建集群环境…

IO与NIO区别

一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 二、NIO和IO的主要区别 下表总结了Java I…

GM8773C 是一款 1:2 DSI 桥接芯片,可实现 4 路进 8 路出转换器功能、视频分离器功能。

GM8773C 是一款 1:2 DSI 桥接芯片,可实现 4 路进 8 路出转换器功能、视频分离器功能。芯片内集成了一个 4 路单一链路的 MIPI DSI 接收器和 8 路双链路 MIPI DSI 发送器。 接 收 器 每 路 可 以 支 持 到 2.0Gbps/lane , 可 以 最 高 支 持 到…

平面设计软件Corel CDR2023又开始放大招啦,CorelDRAW Graphics Suite 2023有哪些新增功能?

CorelDRAW 2023中文版即将于2023年3月14日,在苏州举行线上直播的2023新品发布会,本次发布会主题为“设计新生力,矢量新未来”。 发布会邀请思杰马克丁公司领导、Corel 中国区总经理分享思杰与 Corel 的合作模式及在 CorelDRAW 产品上推动历程…

JavaEE简单示例——Bean管理

简单介绍: 在这一章节我们会比较详细的介绍我们在之前的测试类中以及Bean管理XML配置文件中所使用到的类和方法,以及XML中配置的属性所代表的详细含义。以及之前我们反复提到但是一直没有详细的讲解的一个东西:容器。我们可以大致的有一个概…

react+antdpro+ts实现企业级项目四:注册页面实现及useEmotionCss的介绍

创建文件路径并注册register路由 在pages/User下创建Register文件夹并创建index.tsx文件 然后在config/routes创建register注册路由。注册完后,当在登陆页面点击注册按钮时就可以跳转到此注册页面而不会报404了。 export default [{path: /user,layout: false,rou…

PaddleOCR关键信息抽取(KIE)的训练(SER训练和RE训练)错误汇总

1.SER训练报错: SystemError: (Fatal) Blocking queue is killed because the data reader raises an exception 1.1.问题描述 在执行训练任务的时候报错 单卡训练 python3 tools/train.py -c train_data/my_data/ser_vi_layoutxlm_xfund_zh.yml错误信息如下: T…

初识C++需要了解的一些东西(1)

目录🥇命名空间🏅存在原因🏵命名空间定义🎧命名空间的3种使用方式🏆C输入和输出🌝缺省参数🌜缺省参数概念⭐️缺省参数分类☀️函数重载🔥引用🌚引用概念🌓引…

LeetCode 热题 C++ 581. 最短无序连续子数组 617. 合并二叉树

581. 最短无序连续子数组 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入&am…