软件测试52讲
茹炳晟
eBay中国研发中心,测试基础架构技术主管
立即订阅
13364 人已学习
课程目录
已完结 63 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从“小工”到“专家”,我的软件测试修炼之道
免费
测试基础知识篇 (11讲)
01 | 你真的懂测试吗?从“用户登录”测试谈起
02 | 如何设计一个“好的”测试用例?
03 | 什么是单元测试?如何做好单元测试?
04 | 为什么要做自动化测试?什么样的项目适合做自动化测试?
05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
06 | 你真的懂测试覆盖率吗?
07 | 如何高效填写软件缺陷报告?
08 | 以终为始,如何才能做好测试计划?
09 | 软件测试工程师的核心竞争力是什么?
10 | 软件测试工程师需要掌握的非测试知识有哪些?
11 | 互联网产品的测试策略应该如何设计?
GUI自动化测试篇 (10讲)
12 | 从0到1:你的第一个GUI自动化测试
13 | 效率为王:脚本与数据的解耦 + Page Object模型
14 | 更接近业务的抽象:让自动化测试脚本更好地描述业务
15 | 过不了的坎:聊聊GUI自动化过程中的测试数据
16 | 脑洞大开:GUI测试还能这么玩(Page Code Gen + Data Gen + Headless)?
17 | 精益求精:聊聊提高GUI测试稳定性的关键技术
18 | 眼前一亮:带你玩转GUI自动化的测试报告
19 | 真实的战场:如何在大型项目中设计GUI自动化测试策略
20 | 与时俱进:浅谈移动应用测试方法与思路
21 | 移动测试神器:带你玩转Appium
API自动化测试篇 (3讲)
22 | 从0到1:API测试怎么做?常用API测试工具简介
23 | 知其然知其所以然:聊聊API自动化测试框架的前世今生
24 | 紧跟时代步伐:微服务模式下API测试要怎么做?
代码测试篇 (3讲)
25 | 不破不立:掌握代码级测试的基本理念与方法
26 | 深入浅出之静态测试方法
27 | 深入浅出之动态测试方法
性能测试篇 (7讲)
28 | 带你一起解读不同视角的软件性能与性能指标
29 | 聊聊性能测试的基本方法与应用领域
30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介
31 | 工欲善其事必先利其器:前端性能测试工具原理与行业常用工具简介
32 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(上)
33 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(下)
34 | 站在巨人的肩膀:企业级实际性能测试案例与经验分享
测试数据准备篇 (4讲)
35 | 如何准备测试数据?
36 | 浅谈测试数据的痛点
37 | 测试数据的“银弹”- 统一测试数据平台(上)
38 | 测试数据的“银弹”- 统一测试数据平台(下)
测试基础架构篇 (4讲)
39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?
40 | 从小工到专家:聊聊测试执行环境的架构设计(上)
41 | 从小工到专家:聊聊测试执行环境的架构设计(下)
42 | 实战:大型全球化电商的测试基础架构设计
测试新技术篇 (5讲)
43 | 发挥人的潜能:探索式测试
44 | 测试先行:测试驱动开发(TDD)
45 | 打蛇打七寸:精准测试
46 | 安全第一:渗透测试
47 | 用机器设计测试用例:基于模型的测试
测试人员的互联网架构核心知识篇 (5讲)
48 | 优秀的测试工程师为什么要懂大型网站的架构设计?
49 | 深入浅出网站高性能架构设计
50 | 深入浅出网站高可用架构设计
51 | 深入浅出网站伸缩性架构设计
52 | 深入浅出网站可扩展性架构设计
特别放送篇 (8讲)
测试专栏特别放送 | 答疑解惑第一期
测试专栏特别放送 | 答疑解惑第二期
测试专栏特别放送 | 答疑解惑第三期
测试专栏特别放送 | 答疑解惑第四期
测试专栏特别放送 | 答疑解惑第五期
测试专栏特别放送 | 答疑解惑第六期
测试专栏特别放送 | 答疑解惑第七期
测试专栏特别放送 | 浅谈全链路压测
测一测 (1讲)
测一测 | 这些软件测试题目,你都掌握了吗?
结束语 (1讲)
结束语 | 不是结束,而是开始
软件测试52讲
登录|注册

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

茹炳晟 2018-07-25
在前面的测试基础知识系列文章中,我分享了测试相关的基础知识,从测试用例的设计,到测试覆盖率,再到测试计划的制定,这些都是我认为测试人要掌握的一些基本知识。
那么,接下来我将要带你走入 GUI 自动化测试的世界,和你一起聊聊 GUI 自动化测试的技术、原理和行业最佳实践。
作为该系列的第一篇文章,我直接以一个最简单的 GUI 自动化用例的开发为例,带你从 0 开始构建一个 Selenium 的 GUI 自动化测试用例。
先让你对 GUI 自动化测试有一个感性认识,然后以此为基础,我再来解释 Selenium 自动化测试实现的核心原理与机制,希望可以帮你由点到面建立起 GUI 测试的基础知识体系。

构建一个 Selenium 自动化测试用例示例

测试需求非常简单:访问百度主页,搜索某个关键词,并验证搜索结果页面的标题是“被搜索的关键词”+“_ 百度搜索”。
如果搜索的关键词是“极客时间”,那么搜索结果页面的标题就应该是“极客时间 _ 百度搜索”。
明白了测试需求后,我强烈建议你先用手工方式执行一遍测试,具体步骤是:
打开 Chrome 浏览器,输入百度的网址“www.baidu.com”;
在搜索输入框中输入关键词“极客时间”并按下回车键;
验证搜索结果页面的标题是否是“极客时间 _ 百度搜索”。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(33)

  • Cynthia🌸
    作者讲述的selenium工作原理,十分清晰有条理。
    而其他教你学自动化测试学selenium的文章或者书籍,重点都在操作api上,或者就直接带你分析源码。而很少先把原理讲清楚,导致不少小伙伴学习并应用了很久,还是不够清楚背后的原理。所以也会看到类似的提问:为啥Chrome可以跑的case,Firefox跑不了,为啥webdriver还要一个浏览器装一个?
    如果先弄清楚原理,就不会再在这些问题上有疑问。
    另外,由于2.0以后webdriver逐渐成为主流,所以个人觉得1.0的原理大概看看有个概念就好了,重点放在2.0上面。

    作者回复: 你说的非常对,1.0基本淘汰了,重点是2.0,3.0的核心原理是个2.0一样的👍

    2018-07-28
    14
  • 图·美克尔
    希望能讲一些设计思想,比如我们构建web自动化测试时需要抽象出哪些类比如page oriented的设计,以及为什么这么设计,再就是想了解你们在搭建整个自动化框架的时候是具体使用到哪些模块,比如邮件通知模块以及报告结果模块或者日志模块等等,希望老师能给我们讲解一个业内目前的最佳实践。

    作者回复: 你提的建议非常棒,下一篇文章就会讨论这些话题,第一篇只是给出一个最基本的gui用例,让刚入门的同学有个感性的认识

    2018-07-25
    7
  • 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

    2018-07-25
    1
    5
  • 近期也整理了一个GUI测试框架,pytest+selenium+allure+jenkins,目前只实现了抽离了公共方法、配置文件、测试数据、页面对象独立,使用上目前倒是没有什么问题,但总感觉还是不够灵活。最关键的是,现在脚本执行效率的问题。最近在研究如何实现脚本分布式运行的方法,但是还没有找到好的解决方案,好像jenkins通过节点实现脚本分割和测试报告归集(难点),不知道作者对脚本分布式运行有没有比较好的方案建议?万分感谢。
    2018-08-01
    3
  • C
    一直纠结要不要做gui自动化,我遇到的问题有1.前端ui控件开发不统一,不是统一框架来做的ui设计,维护各模块脚本成本高。2.企业没有做单元测试和接口测试,没有信心做ui自动化测试3.ui界面动一动,ui感觉要维护成本较高。也听过别人说要针对ui框架设计UI自动化测试框架,不知道如何实施(目前还停留在ui脚本层)4.uI自动化能做到什么层度?冒烟是必须的,稳定模块的回归测试能否用ui代替,虽然成本高。

    作者回复: 总结的很到位,你说的这些问题我也都遇到过,要做gui自动化测试,这些问题都是不可回避的,后续的文章会介绍一些实践可以在一定程度上规避或者减轻这些问题。

    2018-07-25
    3
  • 红娟
    配图很漂亮,颜色丰富的嫩芽。一看心情就很好
    言归正传,我比较熟悉python,电脑里装的是selenium 3,待会儿试着写一下用例的case。重点是背后的实现原理。
    我的问题是,如果需要了解背后的实现原理,是不是需要了解http网络协议?

    作者回复: 不需要了解http网络协议,但是需要了解webdriver的实现原理以及web service的概念

    2018-07-25
    2
  • Geek_wenzikaka
    最近公司要采用non-selenium的测试框架,原因之一就是selenium速度太慢,所以选择了cypress,但其实我并不十分清楚non-selenium和selenium本质的区别,因为两者在运行时很相似,望老师解惑。谢谢
    2019-09-15
    1
  • Geek_007
    测试电脑桌面端软件 有什么好方案吗?
    2019-05-02
    1
  • sylan215
    1.提到 Web UI 自动化目前用的最多的肯定还是 selenium 了;

    2.之前也了解了 selenium 1.0 和 2.0 的区别,也对 WebDriver 有了基本的了解,但确实没有本次讲解的这么透彻,给茹老师点赞;

    3.selenium 的入口其实很简单,个人感觉他麻烦的地方还是在用例设计上,比如用例设计的颗粒度,以及对于用例稳定性的考量(用例数据的选取)等;

    以上,欢迎关注公众号「sylan215」一起沟通交流。
    2019-02-13
    1
  • 涟漪852
    Selenium的书籍,请老师推荐下(。・ω・。)ノ

    作者回复: 推荐官方网站的文档,没必要买书

    2018-11-23
    1
  • Harry Potter
    老师您好,请问cs架构项目的gui自动化测试除了QTP之外,还有其他比较好的开源工具吗?QTP是商用的,小一点的公司可能不愿意去花这个钱。
    2018-09-13
    1
  • 阿鼎
    请问非web应用的传统gui测试用神马?

    作者回复: 我个人推荐UFT,也就是以前的qtp,文章中的所讲的所以概念和方法对于非web应用也是完全适应的

    2018-07-27
    1
  • Declan
    不知道UFT的原理是什么,它有很多元素定位的方式

    作者回复: uft支持多动不同的元素定位方式,有些原理类似,比如对象仓库的元素,都是基于属性或者属性的组合,还有一些所谓的低级录制,那就是基于图像识别的,更具体的需要参考uft的官方文档,这块有很多内容

    2018-07-27
    1
  • 橄榄
    没有做过GUI自动化测试,不过茹老师讲的也能听懂一丢丢
    另外,能否专门讲个手机软件测试的专题,如何用monkey实现自动化,初学者请茹老师谅解
    2018-07-26
    1
  • 塔矢亮的小螃蟹
    刚入门自动化测试的小白想问一个很菜鸟的问|・ω・`)
    我最近在看虫师的一本自动化测试的书来学习,用的是python+selenium,但是在元素定位这里一直受到了打击,要是定位按钮,链接都没问题,但是定位输入框比如说登录界面的输入框,用了各种办法xpath,css定位都说找不到这个元素,哦,我用的是chrome的插件xpath helper来自动生成xpath,按道理应该是没错的呀,一直非常困惑

    作者回复: 建议通过inspector观察需要定位的元素属性,然后再选择你的selector,如果单属性不好定位,也可以考虑使用组合属性

    2018-07-26
    1
  • Jimmie.Zhou
    前端修改越来越频繁,到大部分后端api修改较少,通常是新增,所以基于api的自动化测试效果刚加好。

    作者回复: 说得很多,对于互联网产品的测试策略往往以api为主,但是前端还是会保留轻量级的自动化来保证最基本功能的回归,同时引入前端的探索式测试以发现更多的潜在问题

    2018-07-25
    1
  • 。。。
    今天接触了一下appium windows driver的自动化测试,用来测桌面版程序的,发现那些无法精准定位的元素不知道怎么操作。比如inspect.exe能定位到一个panel,但是panel里面有个列表,列表元素是了编辑的,我该怎么去操作这个列表里面的元素呢?
    2019-11-20
  • LIKE
    请教一个问题,如何操作运行,已打开的浏览器?
    实际遇到的问题,因密码控件的原因,绕不过登录。
    2019-11-20
  • 牺牲
    有没有推荐的selenium书籍呢
    2019-09-26
  • kelly
    我们用的是 Cypress
    2019-08-29
收起评论
33
返回
顶部