文章首发于公众号:程序员一凡
企业中如何实施自动化测试
在我们读高中的时候, 是不是经常听老师说:学好数理化,走遍天下都不怕。
作为软件测试这个行业,在当下,你学好自动化,你去哪面试都不怕。
说是这么说,但是你想提前下班,自动化测试解放劳动力、提高效率,让程序脚本在不需要看守的情况下“起飞”如果你的代码、脚本掉到了坑里,你觉得你还能提前下班吗?
有可能,你甚至不如别人做功能测试的。别人一个功能都测试完好久了,你的自动化脚本报了一堆错,还不知道找这个错误的原因。自然你的自动化做不起来,自动化的价值体现不出来。
所以,我针对我们Python自动化测试中基础容易遇到的一些坑,进行一些实战的案例讲解。
在讲这一些坑之前,先给大家分享一下我对自动化测试概念的理解。
在做自动化测试之前,我们要思考一个问题。自动化不是说你会写一点简单的自动化脚本,你就能来实施。你要有一个规划,再去慢慢的推进落地。
我总结了几点:
1.根据业务特点,选择自动化测试方案。
⒉.根据业务侧重点确认自动化覆盖范围和粒度。
3.根据自动化测试用例范围,选择实现框架和语言。
4.根据用例用途,选择执行策略。
(1)你在一个公司,你的产品是什么样子的,根据你产品的业务特点,你去选择确定一个自动化测试方案,这个很重要。比如说你们公司主要注重业务特点是数据库或者后端的一些内容(有些产品注重前端的界面)
所以你要选择一个方案,是先做UI自动化还是接口自动化。
自动化主要分为两大块:UI与接口
UI:Selenium
app:Appium / uiautomator2/airtest
接口:Http Postman Requests
websockets/dubbo
比如说你先做UI自动化,你确定了这个方案,然后你可以根据业务侧重点确认自动化覆盖范围和粒度。
比如说你们公司做UI自动化,你不可能看着一个页面就去写自动化测试用例。从登录到注册再到忘记密码等等,你不需要所有的东西去覆盖,你要根据你们公司的一个核心流程,哪些是必须要覆盖的,哪些是有技术难点的,你可以放到第二期。
然后根据这个范围和方案,你去选择合适的测试框架和语言。
比如说你做UI自动化,建议你首选的框架 Selenium,那当然如果你是APP(安卓)推荐你使用 uiautomator2 这是Python的一个第三方库,它环境依赖非常简单,当然现在市面上最为主流的还是Appium,它的环境依赖复杂,它的唯一一个优势可能就是支持IOS,它是跨平台的。如果你是做游戏的,推荐你用 airtest
接口:Http Postman
现在大部分企业,用的都是Http接口协议。工具可以用Postman
如果你接口自动化,用Python的一个库,Requests
Python为什么这么好用,它有非常丰富的第三方库。就是拿来即用,里面封装了很多很好的API
当然还有websockets/dubbo,像这一类型协议的接口。
做测试离不开一个关键字,就是自动化,现在不管你在企业中或者你去面试,你和同行一聊到一个关键词肯定是自动化。就算你现在去面试一个功能,不是做自动化,面试官也会问你自动化的内容。因为自动化这几年是一个必备技能了,而不是你会一点点自动化就是一个加分项了。
前面几年大家都知道用的比较多的是QTP、LoadRunner这样一些工具。
毕竟由于历史的原因,大家一开始接触的都是功能层面的测试,所以你要确定适合的框架。
不管是哪个协议的接口,用Python全部都能搞定,Python是一个语言,去驱动以上任何一个框架都可以。当然也有其他的选择,比如JAVA、JS等等。
当然最适合刚学习自动化的朋友来说,可能还是Python。而且Python可以做很多的东西,比如说你公司要做爬虫,要做一些数据整理,Execl表格操作,这些东西你如果在公司工作范围之外,你能帮助到这些东西,那么这个都是你的加分项,你的价值就体现了。
回顾一下我的第一份工作,我当时第一个在公司贡献的点就是说,我去用Python去写了一个爬虫脚本,当时帮我们的售后部门收集了几十万条的数据。Python做爬虫提供了非常方便的库。
然后我们假设前面的内容都确定好了,可以根据自动化测试用例的一些用途,去选择执行策略。
你可能去做上线前的验证,上线之后回归,触发性的验证(当某些业务它只有在某个特定的条件下才触发这个功能),持续集成。
触发性的验证:举一个很简单的例子,我今年身份证2020年到期了,那么很多绑定的银行卡,是不是银行会提示你及时跟换。
常见的坑
找不到驱动:Message : 'chromedriver' executable needs to be in PATH
找不到元素:脚本报“NoSuchElementException: Unable to find element”,或者"定位到了,不能操作,点击无效”
敬请期待!
然后这一次我没有一次性给大家全部分享完,因为太多了。大家学习的时候呢,可能也比较的迷,学习资源一多的话呢,你也不知道从来哪里开始学了,所以我决定一点一点的给大家来。就比如说这次我分享给大家这么多,大家可以利用这么多学习资源去做好好的消化玩转吃透,嗯,对,就是这样。如果你对我发出来的学习资源有什么疑问或者是困惑。你都可以在评论区留言,或者来公众号程序员一凡私信我,我都会看到。我下一期会分享更多,所以大家记得关注!我们下期再见