测试岗?从功能测试进阶自动化测试开发,测试之路不迷茫...
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
测试新人在想什么?
想必每一个大神,都是从小白一步步走上来的。当然呢,我很能理解小白的想法,因为平时经常和一些刚入门自动化测试的同行交流,也很深入的了解到他们的一些困惑。
大部分小白想的无非是以下几点问题:
自动化测试好学吗?
不学/不写代码能做自动化测试吗?
怎样学习自动化测试?
学自动化测试要先学习哪个方向?学ui自动化?还是接口自动化?好像App自动化也比较火?要么再来个小程序自动化?
我没有代码基础,工作都是点点点,要不要报培训班?
我需要学习什么语言?java 还是 python?
…
首先,自动化测试,很好学!但是要记住,一定要明确学习的方向,不要剑走偏锋,白花力气。
第1,不写代码当然可以做自动化测试,但是个人建议还是学习一门语言,至于学习什么语言的话,很简单,不用纠结,第一看你是否有编程基础,没有选py,有的话选java py都可
第2,需要看你们的开发用的什么语言,和开发用同一门语言能在学习自动化测试的同时,降低你和开发之间沟通的门槛,提升你在公司的话语权。
第3,学习哪个方向?
我建议:web ui自动化 -> 接口自动化 -> App自动化/小程序自动化,当然,着重学习接口自动化,ui自动化要学,但是没太大必要深究。
首先需要学习一门语言
在上面我们也提到了,自动化要想做得好,必须要学习至少一门语言。当然至于学习语言要到什么程度了?我不可能一直学下去吧?答案是,会用就行!
掌握大部分的语法基础,已经能够满足你的自动化的日常需求了,因为我们写脚本并没有像开发那么难!
语言你需要学习,for循环,if判断,数据类型,运算符,面向对象编程等等,不管是java还是py,这些都是需要的,其实也差不多,会一门语言,其他的都类似。
学习单元测试框架
等你学会单元测试框架pytest/unittest/testNG,当你学会了selenium后,你会发现大部分的线性脚本,很难去管理,并且每个脚本需要去一个个run,而且还无法统计测试结果,这个时候,就需要单元测试框架登场了!
开始学习,单元测试框架的用法,如何创建一个测试类,如何写测试方法,如何把你的脚本写成测试用例,如何校验测试是否通过,用例的执行顺序怎么去控制,断言怎么去写,这些都是你要去探究学习的。
学习自动化框架
此时,你已经开始琢磨如何写一个自动化框架出来了,那么说明你的自动化已经开始入门了,并且往着中级的方向发展,你开始研究框架的结构,发现有用例管理,日志,测试报告,邮件,基础封装类等等,还有一种框架的设计模式(经典PO模式)
常用自动化测试框架
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;
yaml/Excel管理测试用例
等你拿自己的框架,重复枯燥的写着测试用例,这时候你想了,我为啥每次都要request.post,方法都是一样的,只是数据不一样,为什么我要一直写代码呢,很累啊!为什么不用一些文件来读取测试数据,做参数化呢?
这时候你开始研究读写excel/yaml了,你想把所有的测试用例都放在文件里管理,就不用每次去写代码了,然而事情并没有那么简单!那么我在文件里如何去处理关联数据呢?如何去缓存cookie呢?如何做断言呢?如果做一些动态的输入呢?
Git?Jenkins?Docker容器?分布式?
走到这一步,你已经写过好几个框架了,并且基于自己的框架做了优化,那么你此时发现一个很严重的问题,我的代码居然只能在我本地运行,如果要给别人用,还需要去别人电脑上配置环境,copy代码给他。
那么为什么不用一些代码管理工具去管理我的脚本呢?那么就会需要去学习git,了解如何add commit push推送我的代码到公司的gitlab,这样别人也可以使用,那么有了gitlab,我想做一些定时任务,让它自动执行呢?
学jenkins。再更多,要是我想多个用例一起跑呢?学习selenium grid,docker等等。
测试开发/工具平台开发
等你搭建好公司的自动化生态,你还是不满足,我为什么不把这些东西可视化管理呢?做个平台?管理用例,管理任务,管理测试报告?我还可以把公司的一些部署任务也集成过来?
想法很好!此时的你已经不仅仅是一名优秀的自动化工程师了,已经迈向了测试开发的道路!开始学习,了解了测试框架httprunner,开发框架django/flask/springboot,懂得了接口开发的流程
…
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)
心怀信念,勇敢追逐,奋斗是踏上成功之路的钥匙。不惧困难,坚守梦想,只有付出才能收获。相信自己的实力,超越自我,书写人生的辉煌篇章,创造属于自己的不朽传奇!
心怀梦想,勇往直前,奋斗是追求辉煌的征途。坚持不懈,砥砺前行,只有拼尽全力,才能开启人生的华章。相信自己的能力,超越极限,创造属于自己的壮丽故事!
梦想是航向远方的指南针,奋斗是驱动前行的原动力。燃烧希望与勇气,超越自我,让每一步都成为辉煌的足迹。相信坚持与努力,绽放光芒,勇往直前!
相关文章:
测试岗?从功能测试进阶自动化测试开发,测试之路不迷茫...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 测试新人在想什么…...
算法与数据结构(五)--树【1】树与二叉树是什么
一.树的定义 树是一个具有层次结构的集合,是由一个有限集和集合上定义的一种层次结构关系构成的。不同于线性表,树并不是线性的,而是有分支的。 树(Tree)是n(n>0)个结点的有限集。 若n0&…...
打开的idea项目maven不生效
方法一:CtrlshiftA(或者help---->find action), 输入maven, 点击add maven projects,选择本项目中的pom.xml配置文件,等待加载........ 方法二:view->tools windows->mave…...
kvm+qemu+libvirt管理虚机
virt-manager 图形化创建虚拟机 #virt-manager纳管远程kvm虚拟机 # 可以指定kvm虚机的ssh端口和virt-manager所在主机的私钥 virt-manager -c qemussh://root10.197.115.17:5555/system?keyfileid_rsa --no-fork # 如果你生成的ssh-key 的名称是 test-key,在/home/ssh-key/ 目…...
电气防火限流式保护器在汽车充电桩使用上的作用
【摘要】 随着电动汽车行业的不断发展,电动汽车充电设施的使用会变得越来越频繁和广泛。根据中汽协数据显示,2022年上半年,我国新能源汽车产销分别完成266.1万辆和260万辆,同比均增长1.2倍,市场渗透率达21.6%。因此,电动汽车的安全…...
VBA技术资料MF38:VBA_在Excel中隐藏公式
【分享成果,随喜正能量】佛祖也无能为力的四件事:第一,因果不可改,自因自果,别人是代替不了的;第二,智慧不可赐,任何人要开智慧,离不开自身的磨练;第三&#…...
Gson:解析JSON为复杂对象:TypeToken
需求 通过Gson,将JSON字符串,解析为复杂类型。 比如,解析成如下类型: Map<String, List<Bean>> 依赖(Gson) <dependency><groupId>com.google.code.gson</groupId><art…...
伪彩色处理及算法
伪色彩(false color)是指将真实世界的中无法被肉眼观察到的色彩通过计算机或其他技术转换为可见光,从而使人们能够看到这些原本无法看到的色彩。这种技术被广泛应用于军事、医学、科研等领域。 在医学领域,伪色彩技术被用于医学影像诊断。例如,通过将不同灰度的图像映射到…...
Gradle-02:问题Plugin with id ‘maven‘ not found
1. 背景 在一次使用 Gradle 构建自己项目,完事,需要上传到本地 Maven 仓库,因为事先并不清楚 apply plugin: maven 插件已经被 Gradle 移除,找了一圈,才找到解决方案。 2. 原因 apply plugin: maven def localRepo f…...
jupyter lab环境配置
1.jupyterlab 使用虚拟环境 conda install ipykernelpython -m ipykernel install --user --name tf --display-name "tf" #例:环境名称tf2. jupyter lab kernel管理 show kernel list jupyter kernelspec listremove kernel jupyter kernelspec re…...
Unity Sort Group(排序组)
** Unity 中的Sort Group组组件允许让Sprite Renderer(精灵渲染器)重新决定渲染顺序. ** 作为组件存在 组件内容: Unity 使用Sort Group 组件的Sort layer 和Order in layer的值来确定排序组在渲染队列内相对与场景内其他排序组和游戏对象的优先级。 属性功能So…...
基于总线加锁和缓存锁(CPU实现原子操作的两种方式)
总线锁 总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被阻塞住,那么该处理器可以独占共享内存。 CPU和内存之间的通信被锁!! 如果多个处理器同时对共享变量进行读写…...
MybatisPlus存在 sql 注入漏洞(CVE-2023-25330)解决办法
首先我们了解下这个漏洞是什么? MyBatis-Plus TenantPlugin 是 MyBatis-Plus 的一个为多租户场景而设计的插件,可以在 SQL 中自动添加租户 ID 来实现数据隔离功能。 MyBatis-Plus TenantPlugin 3.5.3.1及之前版本由于 TenantHandler#getTenantId 方法在…...
【java】使用maven完成一个servlet项目
一、创建项目 创建一个maven项目 maven是一个管理java项目的工具,根据maven的pom.xml可以引入各种依赖,插件。 步骤 打开idea,点击新建项目 点击创建项目,项目创建就完成了 进入时会自动打开pom.xml文件。 pom是项目的配置文件…...
前端Vue入门-day07-Vuex入门
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 自定义创建项目 vuex概述 构建 vuex [多组件数据共享] 环境 创建一个空仓库 state 状态 1. 提供数据&…...
2023再谈前端状态管理
目录 什么是状态管理? 状态 常见模式 要解决的问题 心智模型 React Context Context 的问题 优点 缺点 React 外部状态管理库 概览 Class 时代 Redux 单向数据流 三大原则 如何处理异步 如何处理数据间联动 优点 缺点 Dva icestore Mobx 设…...
ffmpeg SDL播放器--播放udp组播流
c调用ffmpeg api及SDL库播放播放udp组播流。 代码及工程见https://download.csdn.net/download/daqinzl/88168574 参考文档:https://blog.csdn.net/a53818742/article/details/109312740 开发工具:visual studio 2019 记得推送udp流,可采…...
__attribute__((noreturn))
GNU C 的一大特色就是__attribute__ 机制,__attribute__ 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 语法格式为: __attribute__((att…...
遮挡边界处的深度补全和双曲面外推
论文地址:Depth Completion with Twin Surface Extrapolation at Occlusion Boundaries 论文代码:https://github.com/imransai/TWISE 深度补全是从稀疏的已知深度值开始,为其余图像像素估计未知深度。 大多数方法将其建模为深度插值&#x…...
LK-99室温超导激发万万亿市场,将对我们的生活产生哪些影响?
7月下旬,韩国量子能源研究中心公司相关研究团队在预印本网站上陆续公布两篇类似的论文,宣称一种命名为LK-99的铜掺杂铅磷灰石材料拥有“室温常压”超导能力,系全世界首款室温常压超导材料。 它们的实验方法比较简单,就是把铅、铜、…...
OpCore Simplify:3分钟搞定黑苹果EFI配置,新手也能轻松上手!
OpCore Simplify:3分钟搞定黑苹果EFI配置,新手也能轻松上手! 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为…...
从Deployer到Adapter:图解Canal 1.1.7数据同步原理与SpringBoot集成实战
从Deployer到Adapter:图解Canal 1.1.7数据同步原理与SpringBoot集成实战 在数据驱动的时代背景下,企业级应用对实时数据同步的需求日益增长。Canal作为阿里巴巴开源的MySQL数据库增量日志解析组件,凭借其轻量级、高可靠的特性,已成…...
新手零基础入门:利用快马AI生成你的第一个openclaw抓取程序
今天想和大家分享一个特别适合新手入门的项目——用InsCode(快马)平台快速搭建一个openclaw机械爪交互教程。作为一个刚接触机器人控制的小白,我发现这个可视化学习方式简直太友好了! 理解机械爪的基础结构 刚开始接触时,我连机械爪由哪些部…...
seo优化与网站移动端优化有什么区别_seo优化对网站的内容有什么要求
SEO优化与网站移动端优化有什么区别_SEO优化对网站的内容有什么要求 在当今的数字时代,网站的表现直接关系到企业的在线形象和业务增长。其中,SEO优化和网站移动端优化是两大重要的技术手段。虽然它们共同目的是提升网站的曝光度和用户体验,…...
高效掌握Mem Reduct多语言界面配置:实战指南
高效掌握Mem Reduct多语言界面配置:实战指南 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct 如何通过Mem…...
KH Coder终极指南:零代码玩转文本分析的秘密武器
KH Coder终极指南:零代码玩转文本分析的秘密武器 【免费下载链接】khcoder KH Coder: for Quantitative Content Analysis or Text Mining 项目地址: https://gitcode.com/gh_mirrors/kh/khcoder 还在为海量文本数据发愁吗?想从成千上万份文档中提…...
HBase Shell 新手必知的10个高效命令(附实战示例)
HBase Shell 高效命令实战指南:从入门到精通 第一次接触HBase Shell时,那种面对命令行界面的茫然感我还记忆犹新。作为HBase数据库的交互式接口,Shell命令看似简单,实则蕴含着强大的数据处理能力。本文将分享我在实际项目中总结出…...
Qwen3.5-9B图文对话模型5分钟快速部署教程:零基础小白也能搞定
Qwen3.5-9B图文对话模型5分钟快速部署教程:零基础小白也能搞定 1. 引言:为什么选择Qwen3.5-9B Qwen3.5-9B是一款强大的多模态大模型,能够同时处理文本和图像输入,进行智能对话和内容理解。相比前代产品,它具有三大核…...
Superset报表与告警的深度配置与自适应截图二次开发
1. Superset报表与告警的核心配置解析 第一次接触Superset的报表和告警功能时,我被它的自动化能力惊艳到了。想象一下,每天早上咖啡还没喝完,关键业务指标的日报就已经整整齐齐地躺在邮箱里;当数据异常时,Slack消息比运…...
28、什么是防抖和节流?有什么区别?如何实现?
这是前端面试里的高频题,几乎每个做过交互、性能优化的人都会被问到。 如果你只是回答“防抖就是延迟执行,节流就是固定时间执行一次”,只能算及格。 如果你能讲清楚: 概念区别适用场景实现方式进阶参数面试表达方式 那这题会答…...
