关于「从功能测试,转岗到自动化测试」,主要的几个问题 :
001
目前一直在走功能测试,工作中也没有机会接触自动化测试 。想后续从事自动化测试,我应该从哪里开始学 ?
解答:自动化 ,可以是功能自动化、接口自动化、UI自动化 等等 。另外一个误区:自动化,不仅仅只是会几个自动化测试工具,或者会写点代码 。成熟的自动化测试人员 ,应该是要了解业务,了解为什么要启用自动化,启用自动化后产生了哪些价值 ?是提升效率了,还是提升质量了(很多时候,为了自动化而自动化,导致效率低下,问题上升) ?
002
已经自学了一段自动化测试知识了,现在遇到了疑惑 。是去找一家有自动测试团队的功能测试岗位,还是继续自学,找机会直接找一份自动化测试岗位(找机会内部专岗,还是直接跳槽到自动化岗位) ?
解答:如果是完全没经验,直接找自动化测试岗位,挺难的 。最好的机会,是内部接触一些自动化测试项目 / 经验 ,沉淀OK后,找机会跳槽到一个自动化测试岗位 。
最后,还是那个建议:别裸辞、别裸辞、别裸辞 。
工作中,自己去沉淀知识技能 ,而不是日复一日的重复性无脑劳动 。
很多同学说,工作中,没机会接触自动化测试 。
那么问题来了:
你测试的项目,自己用postman玩一下接口测试,没问题吧 。
把调通的接口,集成到jenkins,每天持续性运行没问题吧 ;
通过Jmeter获取上游接口值,完全场景闭环接口,没问题吧 。
你看 ,并不是工作中,没机会接触,只是自己懒 。
别找借口了 。
至于如上的这些工具,如何用 ?
进阶Python接口自动化测试必备教程(2023全网最详细)
又有些小伙伴问了?怎么学习自动化呢?
接下来我就给大家安利一下自动化测试学习路线
一、软件自动化测试的学习步骤
大概步骤如下:
1. 做好手工测试(了解各种测试的知识)-> 2. 学习编程语言-> 3. 学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者 学习Winform
-> 4. 学习自动化测试工具 ->5. 学习自动化测试框架 -> 6. 实现自动化测试用例 -> 7. 开发自动化测试工具 ->8. 开发自动化测试框架
自动化测试的最高境界是: 开发测试工具,设计自动化测试框架, 让别人用。
二、自动化测试的本质
自动化测试的本质是:用程序测试程序。 也就是说学习“编程语言”是学习自动化测试的基础。
很多人问我学自动化测试,应该去学什么自动化工具。 我的回答是,第一步:应该先学习编程语言,以后再去学自动化测试工具
自动化测试是一定要写代码的, 编程语言水平的高低决定了自动化测试水平的高低, 有了扎实的编程技术,干什么都可以。
学习编程语言时, 要把自己当做开发人员, 系统地学习各种编程知识。
三、自动化测试学习的误区
很多新手一开始,就学习复杂的自动化测试工具, 我觉得这样是本末倒置了。
如果不先理解HTTP协议, 就不会理解Jemeter, LoadRunner, Fiddler, SoapUI这些工具的。
如果不先理解HTML,DOM, 就不会理解Firebug 这种工具的
如果不先理解Win32 API, 就不会理解Windows 窗体自动化测试的原理的。
如果自己没有开发过网站, 就不会理解网站的各个方面,测试起来难免有遗漏。
总之学习自动化测试,需要循序渐进, 把基础打好。
四、自动化测试的职位
自动化测试工程师的职位叫做: (SDET) Software Development Engineer in Test. 专注于自动化测试
手动测试工程师叫: (STE)Software test enginer. 专注于手动测试
在微软有很多SDET的职位,但是没有STE的职位, STE职位一般都是外包给外包公司的, 目前自动化测试还是非常吃香的。
五、自动化测试分类
自动化测试也有非常多的种类,
- 对Web UI 的自动化测试程序
- 对Windows 窗体UI的自动化测试程序
- API测试, 比如(测试WCF service, Web API 等)
- 数据库测试, 比如测试存储过程
- 接口测试 (这种只能用自动化测)
- 单元测试
- 性能测试, 性能测试都需要用到自动化
六、Web自动化测试分类
目前大部分项目都是Web的, 所以我们说的自动化测试,大部分都是针对Web程序的自动化测试, Web自动化测试分两类:
第一类是:模拟用户真实操作,比如,模拟点击鼠标,键盘输入,等,去操作浏览器上的控件。 (代表框架有selenium-webdriver, VS Coded UI)
这类的自动化测试的是通过高级语言(C#, JAVA, Python 等)来调用selenium的一些工具来操作浏览器,帮助我们实行Web UI自动化
第二类是:模拟HTTP请求。
七、自动化测试的知识点
应该像开发人员一样的心态去学习技术, 自动化测试需要掌握以下的知识:
了解Javascript, CSS的知识。
熟练掌握DOM和HTML知识, (用来解析Web界面)
熟练掌握XML技术,(需要用XML保存测试数据,用XML展现测试报告)
熟练使用C# P/inoke技术调用Windows API (可以用来操作Winform 窗口)
熟练掌握窗体"句柄"的概念
熟练使用C# 操作Windows 注册表
熟练使用C# 中的Process 类
熟练掌握数据库的基本操作语句 (测试数据库肯定要用到)
熟练掌握HTTP协议的知识 (请参考我的 HTTP系列博客 [HTTP协议详解])
熟练掌握C# 中的HttpWebRequest 类的用法 (用于模拟HTTP请求)
熟练掌握正则表达式
八、自动化测试的书籍推荐
关于软件自动化测试的书,真心不多, 我查过市面上所有关于自动化测试的书,只找到下面这边书, 电子档
九、自动化测试工具
测试套件工具: JUnit, Nunit, MSTest, 这几个工具功能都一样学起来比较简单。
性能测试工具: JMeter, VSTS 负载测试, LoadRunner(收费), QTP(收费)
Web UI 测试框架:WebDriver/Selenium, VSTS Coded UI, Watri
Windows UI 测试框架:VSTS Coded UI
其他工具: firebug, Fiddler