导航网站怎么做,做网站和做app哪个更难,淄博网站制作定制推广,深圳有实力的优化公司前段时间公司要招2个自动化测试#xff0c;同事面了几十个候选人#xff0c;发现了一个很奇怪的现象#xff0c;面试的时候#xff0c;如果问的是框架api、脚本编写这些问题#xff0c;基本上个个都能对答如流#xff0c;等问到实际项目的时候#xff0c;类似“怎么从0开…前段时间公司要招2个自动化测试同事面了几十个候选人发现了一个很奇怪的现象面试的时候如果问的是框架api、脚本编写这些问题基本上个个都能对答如流等问到实际项目的时候类似“怎么从0开始搭建自动化体系”“让你来推广自动化你会怎么设计方案”这种问题时很多人就开始避重就轻、含糊其辞。
跟同事讨论了一下这个事一致认为主要问题出现在现在学习自动化的渠道太多了很多自动化的基础知识都能在公开的渠道学习很多自动化的新手就把学到的这些技术名词和术语往自己简历里搬觉得好像自己已经完全掌握自动化了。
但事实上“会自动化” ≠ “ 能做自动化”
如果说没有企业级的项目实操 你就不可能清楚怎么去拆解项目需求怎么从0到1搭建自动化体系还有自动化实施过程中的坑如何避开
说来说去还是对自动化实操的经验太匮乏了同时也没有能够参考的自动化测试流程规范。 做了几年自动化测试突然想就这个问题总结一下自己以往的学习经历踩过的坑做一些深入的探讨。
抛开疑问只做学术探讨
这次我们抛开所有的疑惑比如自动化测试到底有什么用自动化真的能提升效率么学了自动化能涨多少工资等等以上的话题我这次将不再论述这几个问题也是平时讨论的比较多的问题。
针对以上的问题我做一个总结能涨工资能多赚钱的技术就值得我们去学既然自动化现如今发展的这么火自然有它存在的价值。
大部分手工测试想的无非是以下几点问题
1.自动化测试好学吗 2.不学/不写代码能做自动化测试吗 3.怎样学习自动化测试 4.学自动化测试要先学习哪个方向学ui自动化还是接口自动化好像App自动化也比较火要么再来个小程序自动化 5.我没有代码基础工作都是点点点要不要报培训班 6.我需要学习什么语言java 还是 python …等等
我来针对以上的问题说一些自己的看法
首先自动化测试很好学但是要记住一定要明确学习的方向不要剑走偏锋白花力气。
第一不写代码当然可以做自动化测试但是个人建议还是学习一门语言至于学习什么语言的话很简单不用纠结第一看你是否有编程基础没有选py有的话选java py都可
第二需要看你们的开发用的什么语言和开发用同一门语言能在学习自动化测试的同时降低你和开发之间沟通的门槛提升你在公司的话语权。
第三学习哪个方向我建议web ui自动化》接口自动化》App自动化/小程序自动化当然着重学习接口自动化ui自动化要学但是没太大必要深究。
第四要不要报名培训班这个看你个人如果你觉得自己学习理解能力很强本身自己又很自律同时学习的方向又很明确那么你当然可以不报名培训多省点钱不香么
假如你对自动化测试或者一些编程语言毫无理解身边又没有能带你学习的人那么报名培训绝对是一个快速提升的途径。
盖楼之前先打好地基首先需要学习一门语言
在上面我们也提到了自动化要想做得好必须要学习至少一门语言。当然至于学习语言要到什么程度了我不可能一直学下去吧答案是会用就行
掌握大部分的语法基础已经能够满足你的自动化的日常需求了因为我们写脚本并没有像开发那么难
语言你需要学习for循环if判断数据类型运算符面向对象编程等等不管是java还是python这些都是需要的其实也差不多会一门语言其他的都类似。
语言入门后正式踏上开始自动化成神之路入门篇Selenium selenium作为自动化的老祖宗已经被玩烂了基本上只要是做自动化的无人不知无人不晓。为什么要先学习selenium
它能帮助你快速理解自动化到底是个什么东西并且能直观的在页面上面反馈给你。咱当初也是看着selenium的api一点一点啃下来的几乎每个方法都去尝试了一下。
selenium有1.0 2.0 3.0,建议你学习之前先去了解以下它的历史u以及它的运行原理这样可以勾起你的学习兴趣。你学习selenium需要去安装浏览器强烈建议使用Chrome而不是FireFox前者兼容的更好。
安装好Chrome你需要去安装驱动恭喜你这时候你就会踩到自动化的第一个坑了大部分原因还是因为你的驱动版本和浏览器版本对不上。等能访问百度后这里印象很深的su和kw具体是什么等你学了就知道了
你会再去尝试各种selenium的方法去操作浏览器这时候仿佛打开了新世界的大门奥原来自动化测试是这么个东西真神奇
玩腻了Selenium
等你玩了几天或者几个星期之后你好像对Selenium提不起什么兴趣了脚本也写的越来越6能写出一些线性的自动化脚本了这个时候有点骄傲自满自动化不过如此就这
我想说的是不要高兴的太早你仅仅只是刚跨入自动化测试的大门走了一小步而已。此时你可以开始尝试把项目中一些重复的操作写成脚本去跑满满的成就感有木有自动化的成效初步形成仿佛你开始懂得如何用自动化提升效率了。
开始接触自动化框架unittest/testNG
等你学会单元测试框架unittest/testNG当你学会了selenium后,你会发现大部分的线性脚本很难去管理并且每个脚本需要去一个个run而且还无法统计测试结果这个时候就需要单元测试框架登场了
你会开始学习单元测试框架的用法如何创建一个测试类如何写测试方法如何把你的脚本写成测试用例如何校验测试是否通过用例的执行顺序怎么去控制断言怎么去写这些都是你要去探究学习的。
不满足于单元测试框架的功能
等你脚本写的很6用例也会组织了然后每次领导告诉你跑一下测试然后把测试结果发给他要总结成测试报告的形式。
你这时候屡次打开你的编辑器run test然后刷刷刷的跑完测试一条一条的统计测试结果累得半死发给了领导。
第二天领导又说下班前你再跑一下测试给我份报告想死的心都有了。那么你开始去逛百度逛论坛想要得到解决方法那么“框架”一次就会映入眼帘。
学习自动化框架
此时你已经开始琢磨如何写一个自动化框架出来了那么说明你的自动化已经开始入门了并且往着中级的方向发展你开始研究框架的结构发现有用例管理日志测试报告邮件基础封装类等等还有一种框架的设计模式经典PO模式
你开始对你的用例进行整理封装基类编写页面类封装日志邮件模块等等经过了几个星期的打磨你的第一个自动化框架诞生了
此时你可以去各个技术群去炫耀了自动写出了一个自动化框架很多小白也开始吹捧你叫你大神了。
初始接口测试
以上结束了UI自动化的学习那么下面到接口这边。一般公司用的都是http接口那么你就从http协议开始学习了了解它的结构请求头请求参数请求地址请求方式等等等尝试学习一些抓包工具
如fiddler,chales,wireshark或者浏览器的开发者工具等等去抓包获取一些接口慢慢的观察它的请求构造但是这时候还是云里雾里对接口一知半解。于是下载了一个接口测试工具尝试把参数录入到工具中手动发起调用。
当工具返回200 code时奥原来是这么回事。好像就是和服务端来传递和接受数据的然后前端页面会把数据展示到前台
尝试学习Request/HttpClient库发起请求
在用完postman后就会想到那么我怎么用代码去发起一个请求呢这时候就需要去学习这两个东西。pip install import requests后就开始了你的接口自动化之旅。
你尝试也是把之前ui自动化的增删改查用接口来实现你把抓包的请求参数拿过来一个一个方法的调用然后一键运行一绿三红为什么然后发现接口返回了401无权限奥我没有登入啊那么怎么才能登入呢
抱着很多的疑惑开始研究这时候你需要去了解cookie和token的工作机制再配合你的代码去缓存cookie达到登入。等解决了这个问题但是接口还是报错了啊删除接口提示我没有这条数据
查来查去原来是我那条数据已经用掉了那么怎么可以保证我每次录入的参数都是新的呢这时候就需要去了解接口关联如何把参数从上个接口的响应提取出来给下个接口用。
request/HttpClient结合unittest/testNGallure
一样的等你学会了 request/HttpClient,自然也会想到用单元测试框架把他们集成起来然后又发现了一个高大上的allure测试报告再结合一些日志模块打印参数轻车熟路的这么一个接口框架就出来了和之前的差不多小意思。
尝试用yaml/Excel管理测试用例
等你拿自己的框架重复枯燥的写着测试用例这时候你想了我为啥每次都要request.post方法都是一样的只是数据不一样为什么我要一直写代码呢很累啊为什么不用一些文件来读取测试数据做参数化呢
这时候你开始研究读写excel/yaml了你想把所有的测试用例都放在文件里管理就不用每次去写代码了然而事情并没有那么简单那么我在文件里如何去处理关联数据呢如何去缓存cookie呢如何做断言呢如果做一些动态的输入呢
以上问题就留给你们自己去想了。
高级货git?jenkins?docker容器分布式
走到这一步你已经写过好几个框架了并且基于自己的框架做了优化那么你此时发现一个很严重的问题我的代码居然只能在我本地运行如果要给别人用还需要去别人电脑上配置环境copy代码给他。
那么为什么不用一些代码管理工具去管理我的脚本呢那么就会需要去学习git了解如何add commit push推送我的代码到公司的gitlab这样别人也可以使用那么有了gitlab我想做一些定时任务让它自动执行呢
学jenkins。再更多要是我想多个用例一起跑呢学习selenium griddocker等等。。
自动化顶端之测试平台/工具开发
等你搭建好公司的自动化生态你还是不满足我为什么不把这些东西可视化管理呢做个平台管理用例管理任务管理测试报告我还可以把公司的一些部署任务也集成过来
想法很好此时的你已经不仅仅是一名优秀的自动化工程师了已经迈向了测试开发的道路开始学习了解了测试框架httprunner开发框架django/flask/springboot懂得了接口开发的流程了解了mybatis,shiro,quartz等等开始学习前端
vue/react懂得了什么是组件开发父子组件传值开始了解很多东西甚至运维方面的知识开始了解k8s docker微服务。。那么你越来越往着大神的方向去了希望你还没有秃头此时的你可以骄傲的称自己为一名合格的测试开发或者叫全栈开发了有木有到此告一段落。
最后
做为一名有8年工作经验的测试人员接下来我想分享一下这些年来我对于技术一些归纳和总结和自己对作为一名高级测试者需要掌握那些技能的笔记分享希望能帮助到有心在技术这条道路上一路走到黑的朋友
下面分享我整理的这一份2023年可能是最全的软件自动化测试开发工程师发展方向知识架构体系图。1、Python 编程与测试开发技术 2、Web自动化测试基础 3、APP自动化测试基础 4、Postman测试工具专题 5、接口自动化测试基础 6、自动化框架封装 7、持续集成 8、Jmeter 性能测试 9、APP性能测试 10、Fiddler 抓包工具的使用 11、TCP/IP协议详情 12、计算机操作系统 13、Linux 系统操作 14、MySQL 数据库 15、RobotFramework 自动化测试框架 16、跨平台的自动化测试框架 上面就是我为大家整理出来的一份软件测试工程师发展方向知识架构体系图。
可以说这个过程会让你痛不欲生但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难只要迈出了第一步你就已经成功了一半等到完成之后再回顾这一段路程的时候你肯定会感慨良多。
如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。 软件测试面试题合集
我们进阶学习自动化测试必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 视频文档获取方式
这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片进群即可自行领取。