测试开发全栈之Python自动化 Python 自动化测试踩坑记录 (企业中如何实施自动化测试)

程序员一凡 · 2020年11月03日 · 最后由 程序员一凡 回复于 2020年11月09日 · 2125 次阅读

企业中如何实施自动化测试

在我们读高中的时候, 是不是经常听老师说:学好数理化,走遍天下都不怕。

作为软件测试这个行业,在当下,你学好自动化,你去哪面试都不怕。

说是这么说,但是你想提前下班,自动化测试解放劳动力、提高效率,让程序脚本在不需要看守的情况下 “起飞” 如果你的代码、脚本掉到了坑里,你觉得你还能提前下班吗?

有可能,你甚至不如别人做功能测试的。别人一个功能都测试完好久了,你的自动化脚本报了一堆错,还不知道找这个错误的原因。自然你的自动化做不起来,自动化的价值体现不出来。

所以,我针对我们 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

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以 1079636098,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

接口: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”,或者"定位到了,不能操作,点击无效”

敬请期待!

然后这一次我没有一次性给大家全部分享完,因为太多了。大家学习的时候呢,可能也比较的迷,学习资源一多的话呢,你也不知道从来哪里开始学了,所以我决定一点一点的给大家来。就比如说这次我分享给大家这么多,大家可以利用这么多学习资源去做好好的消化玩转吃透,嗯,对,就是这样。如果你对我发出来的学习资源有什么疑问或者是困惑。你都可以在评论区留言,或者来公众号程序员一凡私信我,我都会看到。我下一期会分享更多,所以大家记得关注!我们下期再见!

共收到 3 条回复 时间 点赞

大家在 UI 自动化与接口自动化经常会遇到哪些坑?

写的很真实,我也用了 uiautomator2 做过 demo,简单

liuau86 回复

感谢支持

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册