12 | 从0到1:你的第一个GUI自动化测试
茹炳晟

在前面的测试基础知识系列文章中,我分享了测试相关的基础知识,从测试用例的设计,到测试覆盖率,再到测试计划的制定,这些都是我认为测试人要掌握的一些基本知识。
那么,接下来我将要带你走入 GUI 自动化测试的世界,和你一起聊聊 GUI 自动化测试的技术、原理和行业最佳实践。
作为该系列的第一篇文章,我直接以一个最简单的 GUI 自动化用例的开发为例,带你从 0 开始构建一个 Selenium 的 GUI 自动化测试用例。
先让你对 GUI 自动化测试有一个感性认识,然后以此为基础,我再来解释 Selenium 自动化测试实现的核心原理与机制,希望可以帮你由点到面建立起 GUI 测试的基础知识体系。
构建一个 Selenium 自动化测试用例示例
测试需求非常简单:访问百度主页,搜索某个关键词,并验证搜索结果页面的标题是“被搜索的关键词”+“_ 百度搜索”。
如果搜索的关键词是“极客时间”,那么搜索结果页面的标题就应该是“极客时间 _ 百度搜索”。
明白了测试需求后,我强烈建议你先用手工方式执行一遍测试,具体步骤是:
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件测试 52 讲》,新⼈⾸单¥68
《软件测试 52 讲》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(45)
- 最新
- 精选
- Cynthia🌸作者讲述的selenium工作原理,十分清晰有条理。 而其他教你学自动化测试学selenium的文章或者书籍,重点都在操作api上,或者就直接带你分析源码。而很少先把原理讲清楚,导致不少小伙伴学习并应用了很久,还是不够清楚背后的原理。所以也会看到类似的提问:为啥Chrome可以跑的case,Firefox跑不了,为啥webdriver还要一个浏览器装一个? 如果先弄清楚原理,就不会再在这些问题上有疑问。 另外,由于2.0以后webdriver逐渐成为主流,所以个人觉得1.0的原理大概看看有个概念就好了,重点放在2.0上面。
作者回复: 你说的非常对,1.0基本淘汰了,重点是2.0,3.0的核心原理是个2.0一样的👍
231 - 图·美克尔希望能讲一些设计思想,比如我们构建web自动化测试时需要抽象出哪些类比如page oriented的设计,以及为什么这么设计,再就是想了解你们在搭建整个自动化框架的时候是具体使用到哪些模块,比如邮件通知模块以及报告结果模块或者日志模块等等,希望老师能给我们讲解一个业内目前的最佳实践。
作者回复: 你提的建议非常棒,下一篇文章就会讨论这些话题,第一篇只是给出一个最基本的gui用例,让刚入门的同学有个感性的认识
11 - soul值得注意得地方,预先装好浏览器的驱动器,不然会报错 " java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property;大家如果再执行过程中提示如上错误,去这个地址下载即可 https://sites.google.com/a/chromium.org/chromedriver/downloads
作者回复: 不同的浏览器需要下载对应的driver
27 - 阿鼎请问非web应用的传统gui测试用神马?
作者回复: 我个人推荐UFT,也就是以前的qtp,文章中的所讲的所以概念和方法对于非web应用也是完全适应的
3 - C一直纠结要不要做gui自动化,我遇到的问题有1.前端ui控件开发不统一,不是统一框架来做的ui设计,维护各模块脚本成本高。2.企业没有做单元测试和接口测试,没有信心做ui自动化测试3.ui界面动一动,ui感觉要维护成本较高。也听过别人说要针对ui框架设计UI自动化测试框架,不知道如何实施(目前还停留在ui脚本层)4.uI自动化能做到什么层度?冒烟是必须的,稳定模块的回归测试能否用ui代替,虽然成本高。
作者回复: 总结的很到位,你说的这些问题我也都遇到过,要做gui自动化测试,这些问题都是不可回避的,后续的文章会介绍一些实践可以在一定程度上规避或者减轻这些问题。
3 - 红娟配图很漂亮,颜色丰富的嫩芽。一看心情就很好 言归正传,我比较熟悉python,电脑里装的是selenium 3,待会儿试着写一下用例的case。重点是背后的实现原理。 我的问题是,如果需要了解背后的实现原理,是不是需要了解http网络协议?
作者回复: 不需要了解http网络协议,但是需要了解webdriver的实现原理以及web service的概念
3 - Jimmie.Zhou前端修改越来越频繁,到大部分后端api修改较少,通常是新增,所以基于api的自动化测试效果刚加好。
作者回复: 说得很多,对于互联网产品的测试策略往往以api为主,但是前端还是会保留轻量级的自动化来保证最基本功能的回归,同时引入前端的探索式测试以发现更多的潜在问题
2 - 涟漪852Selenium的书籍,请老师推荐下(。・ω・。)ノ
作者回复: 推荐官方网站的文档,没必要买书
1 - Declan不知道UFT的原理是什么,它有很多元素定位的方式
作者回复: uft支持多动不同的元素定位方式,有些原理类似,比如对象仓库的元素,都是基于属性或者属性的组合,还有一些所谓的低级录制,那就是基于图像识别的,更具体的需要参考uft的官方文档,这块有很多内容
1 - 塔矢亮的小螃蟹刚入门自动化测试的小白想问一个很菜鸟的问|・ω・`) 我最近在看虫师的一本自动化测试的书来学习,用的是python+selenium,但是在元素定位这里一直受到了打击,要是定位按钮,链接都没问题,但是定位输入框比如说登录界面的输入框,用了各种办法xpath,css定位都说找不到这个元素,哦,我用的是chrome的插件xpath helper来自动生成xpath,按道理应该是没错的呀,一直非常困惑
作者回复: 建议通过inspector观察需要定位的元素属性,然后再选择你的selector,如果单属性不好定位,也可以考虑使用组合属性
1
收起评论