当前位置: 首页 > news >正文

我从功能测试到python接口自动化测试涨到22k,谁知道我经历了什么......

目录:导读

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


前言

常见的接口:
http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、jmeter、apifox、loadrunner等;

python接口自动化测试:https://www.bilibili.com/video/BV16G411x76E/

webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;

对于软件测试而言,有几个大体的发展方向:功能,接口,UI,性能。

对于有一定基础测试经验的软件测试从业者来说,接口肯定是最好的方向
阅读完此文我就会告知你原因

接下来我将从下面三个方面来阐述:
1、为什么对于初学者来说,接口是最好的进阶方向?
2、接口学习可以分为哪三个阶段?
3、接口学习的三个阶段分别学什么?

接口测试最好的方向

为什么对于有一定基础测试经验的软件测试从业者来说,接口是最好的方向?
目前项目实现方式,绝大多数都是采用前后端分离,所以功能都需要通过接口来完成,所以接口测试应用广泛,必不可少;

相对于功能、UI、性能测试而言,接口学习的性价比更高;

相对于功能测试,接口测试之后可以选择实现自动化,方便回归;

相对于UI测试,要么是考虑手动测试,要么是考虑自动化。如果是UI自动化的话,在项目还处于开荒期,迭代比较快且内容更替比较大的情况下,UI自动化的性价比是很低的;

相对于性能测试,它的学习基础就是接口测试;

学好了接口测试,对于我们找一个比较好的工作,帮忙很大。是不是这样?

接口测试已经是现如今测试工程师的标配技能。如果只会功能测试,若再学一个接口测试,起步薪资就能达到13K+了,所以学接口测试的性价比非常高

所以你若要自学,至少要知道如何使用常见的接口测试工具(比如postman、jmeter、ApiPost、Apifox等)去进行接口测试

接口测试学习三个阶段

阶段一
了解接口测试相关的基础知识,达到的目标有两个:
1.能解读接口文档;
2.能编写接口测试用例

阶段二
学习使用工具完成接口测试,工具推荐Postman和Jmeter。对于新人,没有接触过接口测试的,我建议先学习使用Postman这种工具,因为它上手要比Jmeter友好很多

阶段三
学习使用代码完成接口测试,并且能搭建接口测试的自动化框架。这最后一个阶段,也可以说是接口测试从接口自动化测试的过渡阶段

虽然使用Postman或者Jmeter也能完成接口的自动化测试,但是如果你想要拿到月20k+的offer,代码这一块是无论如何都绕不过去的。

这里建议用python做自动化测试。现企业的主流

学习的三个阶段

第一阶段学习内容
这一个阶段,我们主要是了解接口测试的一些基础知识

包括下面这些:
了解接口及接口测试的概论
知道什么是接口,什么是接口测试,并且了解接口测试的原理和为什么要进行接口测试

理解Http协议
(1)了解Http协议的作用是什么,都有哪些特点
(2)理解URL,以及URL的组成部分
(3)理解Http协议的两个组成部分,Http请求和Http响应,掌握如何通过抓包Fiddler,谷歌的开发者工具,fiddler或者charles抓取接口,并且查看这两部分的内容
(4) 重点掌握Http请求的请求方法都要哪些
(5) 重点掌握常见的Http响应的状态码都有哪些,并且代表什么意思

了解接口规范,重点了解Restful接口风格

接口文档的解析
(1)明白接口文档的作用
(2) 知道接口文档都应该要包含哪些内容

最重要的,接口的测试用例编写。这里的重点是理解接口测试用例设计的思路和方法。

第二阶段学习内容
对于初学者而言,我建议以postman入手开始学习接口测试,因为它对于新手而言,比Jmeter友好太多了

基本上5天左右就能完成掌握,对一般遇到的接口进行测试一点问题都没有

对于Postman的学习可以从以下几个方面进行学习:

基本的设置
创建接口请求
设置请求方法
URL
在URL中设置参数
设置请求头
设置表单格式和JSON类型的请求体参数,能查看响应数据和响应的状态码

高级的用法
(1)进行接口测试用例的管理
(2)使用postman完成断言
(3) 使用Postman完成接口之前的数据关联
(4) 使用postman完成测试数据的参数化
(5) 学习使用请求的前置脚本

学习借助newman这个插件完成生成测试报告

第三阶段学习内容
接口测试的第三阶段,其实就可以理解为是接口的自动化测试了。目前在这个行业里面实现接口自动化,大部分就是两个方向,一个是JAVA,另外一个是Python。但是对于一个没有什么代码基础的不太友好。

这个阶段我强推Python,因为从学习Python到能实现接口自动化框架的搭建,最多一个月就能实现。而你要选择JAVA的话,一个月的时间,你连基础还没有学完

如果要学习Python进行接口自动化的话,可以分成以下几个步骤:

学习Python
Python的基础语法,如变量、函数和类,顺序、分支、循环;
python框架封装;
Python的单元测试框架,unittest和pytest

学习使用代码进行数据库的操作,工具包pymysql
学习使用代码,进行SQL语句的增,删,改,查;
学习使用代码,进行事务的手动提交
自行封装一个数据库的工具类

学习使用代码进行接口测试,学习工具包requests

学习借助unittest或者pytest搭建接口自动化框架

只要能完成这最后一个阶段,基本上接口测试这一块就通透了,想找一个20k+以上的工作就没有问题。最后的话,还可以继续学习Jmeter或者loadrunner来进行接口性能方面的测试。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

过去的,让它过去,永远不要回顾;未来的,等来了时再说,不要空想;我们只抓住了现在,用我们现在的理想,做我们所应该做的。

相信自己,坚信自己的目标,去承受常人承受不了的磨难与挫折,不断去努力、去奋斗,成功最终就会是你的!

多数人在人潮汹涌的世间,白白挤了一生,从来不知道哪里才是他所想要到达的地方,而有目标的人却始终不忘记自己的方向,所以他能打开出路,走向成功。

相关文章:

我从功能测试到python接口自动化测试涨到22k,谁知道我经历了什么......

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

SDG,ADAM,LookAhead,Lion等优化器的对比介绍

本文将介绍了最先进的深度学习优化方法,帮助神经网络训练得更快,表现得更好。有很多个不同形式的优化器,这里我们只找最基础、最常用、最有效和最新的来介绍。 优化器 首先,让我们定义优化。当我们训练我们的模型以使其表现更好…...

【项目实现典型案例】12.数据库数据类型不一致导致查询慢

目录一:背景介绍二:索引失效复现四:索引实现的六种情况1、类型转换,函数2、ISNULL3、通配符开头4、范围查询5、组合索引,不符合最左匹配原则6、WHERE子句中的OR四:总结一:背景介绍 MySql数据库…...

【大数据开发】报错汇总

目录 Hadoop Attempting to operate on hdfs namenode as root jps后没有namenode Hive Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V Caused by:o…...

HTTPS的加密原理(工作机制)

现在很多网站使用的都是HTTPS协议,比如CSDN他们为什么要使用HTTPS协议而不是继续使用HTTP协议呢?以及HTTPS都做了些什么?HTTP协议与HTTPS有哪些区别? 下面我来 讲解这些问题?(篇幅可能有些长,请求耐心观看,我以0基础的角度去讲解这些东西, 如果你有一定的基础前面的跳过就好…...

Git仓库迁移

背景 由于公司原来的gitee地址需要改完新的gitlab仓库,大量的服务模块已再本地进行开发,且存在大量分支进行维护,迁移要求历史提交记录也得同步,需要简单快捷一并完成各服务已经分支迁移。 一、在新的目标git中创建新代码仓 新…...

用CHATGPT生成C++面试题及答案

以下是C的面试题及其答案: 什么是C?C与C语言有什么区别? C是一种高级编程语言,是对C语言的扩展。C具有更强大的面向对象编程能力,支持类、继承、多态等特性。 什么是面向对象编程? 面向对象编程是一种编程…...

二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)

目录 二进制转十进制 十进制原理: 二进制转十进制计算: 八、十六进制转十进制 八、十六进制转十进制计算: 十进制转其他进制 十进制转二进制: 十进制转八进制: 十进制转十六进制: 不同进制之间的相互转…...

Redis技术详解

Redis技术详解 Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存&…...

解决mybatis-plus updateById方法不能set null

原因 因为 MyBatis-Plus 自带的更新方法,都有对对象空值进行判空。只有不为空的字段才会进行数据更新 所以像updateById等方法,在更新时会自动忽略为null的字段,只更新非null字段值 但在某些情况下,我们的需求就是将数据库中的值…...

Linux的mysql 数据库及开发包安装

注意:以下操作都以 root 用户进行操作 直接按照下列步骤在命令行输入即可 下载 1: sudo yum install -y mariadb 2: sudo yum install -y mariadb-server 3: sudo yum install -y mariadb-devel 接下来配置文件:在相应…...

π-Day快乐:Python可视化π

π-Day快乐:Python可视化π 今天是3.14,正好是圆周率 π\piπ 的前3位,因此数学界将这一天定为π\bold{\pi}π day。 π\piπ 可能是最著名的无理数了,人类对 π\piπ 的研究从未停止。目前人类借助计算机已经计算到 π\piπ 小数…...

【论文速递】ACM MM 2022 - 基于统一对比学习框架的新闻多媒体事件抽取

【论文速递】ACM MM 2022 - 基于统一对比学习框架的新闻多媒体事件抽取 【论文原文】:Multimedia Event Extraction From News With a Unified Contrastive Learning Framework 【作者信息】:Liu, Jian and Chen, Yufeng and Xu, Jinan 论文&#xff…...

数据库分库分表

一、为什么要分库分表 如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而来,比如电商系统来说双十一大促对订单数据压力很大,Tps十几万并发量,如果传统的架构(一主多从),主库容量肯定无法满足这么高的Tps,业务越来越大,单表数据超出了数据库支持…...

【C缺陷与陷阱】----语义“陷阱”

💯💯💯 本篇处理的是有关语义误解的问题:即程序员的本意是希望表示某种事物,而实际表示的却是另外一种事物。在本篇我们假定程序员对词法细节和语法细节的理解没有问题,因此着重讨论语义细节。导言&#xf…...

JavaWeb--VUE

VUE1 概述2 快速入门3 Vue 指令3.1 v-bind & v-model 指令3.2 v-on 指令3.3 条件判断指令3.4 v-for 指令4 生命周期5 案例5.1 需求5.2 查询所有功能5.3 添加功能目标 能够使用VUE中常用指令和插值表达式能够使用VUE生命周期函数 mounted 1 概述 接下来我们学习一款前端的框…...

2分钟彻底搞懂“高内聚,低耦合”

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...

网络编程UDP TCP

定义:关注底层数据的传输 区分网页编程:关注上层应用 端口号:区分软件 2个字节 0~65535表示端口号 同一协议下端口号不能冲突 8000以下称为预留端口号,建议之间设置端口号为8000以上 常见的端口号: 80:http 8080:tomcat 3306:mysql 1521:oracle InetSocketAddress:此类实现IP套…...

【2023-Pytorch-检测教程】手把手教你使用YOLOV5做电线绝缘子缺陷检测

随着社会和经济的持续发展,电力系统的投资与建设也日益加速。在电力系统中,输电线路作为电能传输的载体,是最为关键的环节之一。而绝缘子作为输电环节中的重要设备,在支撑固定导线,保障绝缘距离的方面有着重要作用。大…...

交叉编译(NDK)

文章目录前言Android-NDK使用NDK目录结构主流的Android NDK交叉编译前言 交叉编译是指在一种计算机体系结构上编译和构建应用程序,但是生成的可执行文件和库是针对另一种不同的体系结构,比如ARM、MIPS、PowerPC、x86 等。 常见的交叉编译工具集&#x…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...