2016年1月,机缘巧合下我出版了《Selenium2自动化测试实战--基于python语言》这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用Selenium IDE去录制/回放脚本么?

没想到受到许多测试人员的欢迎,我会时常去看网上的书评。大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议。在此,表示感谢。

随着,我对Selenium自动化技术的理解,越来越发现《Selenium2自动化测试实战--基于python语言》书中有许多不足之处。

2017年的时候,我就有萌生了要重写一版的想法,当时能想到的改动的地方不多。只是一定未开始动笔。知道2018年下半年,我才开始重新写这本书。

接下来,我将简单的向你介绍以下新书的章节,以及我的改动。

第一章: 不讲什么是软件测试,以及测试的分类这些过于基础的东西了。快速的帮助你对自动化测试,以及Selenium、appium有一个认识。

第二章: 搭建环境。

第三章: python基础,修改了部分列子,以及我认识上的错误,比如,我把list/列表 称为 数组 ,这其实源于我学C/Java语言,就把他们的叫法照搬了过来。显然,是不太合适的。随着对python的语言的使用,也有了更多的认识。如果你还不会python,学完这一章你就入门了。

第四章: Webdriver API,这是你学习WebDriver非常重要的一章,部分例子做了更新。

第五章: 自动化测试模型,自动化模型的介绍,以及用简单的例子介绍模型的用法,还有各种数据文件的读取。数据驱动并不一定就是读数据文件

第六章: unittest单元测试框架,这一章有做精简,随着对框架的理解,我可以用更精简的例子讲解框架的使用。

第七章: unittest扩展,主要是HTMLTestRunner、数据驱动测试库,自动化发邮件,我会告诉你,如何使用数据驱动测试库配合unittest做自动化测试更完美。 测试报告自动发邮件,上一版居然要那么麻烦,新书中的方法超简单。

第八章: page object概念,已及我自己的开源项目poium的使用。

第九章: pytest单元测试框架,新曾章节,pytest更适合用来做UI自动化测试,它有强大的 conftest.py 文件,以及各种丰富的扩展插件。越来越多的测试已经开始使用pytest了。

第十章: Selenium Grid:本章做了精简,我发现我可以更简单的讲清楚Grid的使用。

第十一章: Jenkins持续集成,上一版因为控制书的成本,做为电子版下载的,做自动化怎么会不用持续集成,我将内容做了大大的补充,完整的教你如何配置自动化项目。

第十二 ~ 十四章: appium自动化测试,新增章节,appium与selenium有着很强的继承关系。App自动化测试已经变得很普遍,所以,我加入appium的安装到实践。appium已经不算什么新技术了,不过,我很有信心能通过三章你学会appium的使用。

~~~~~~~~~~~~~~~

相比上一本,我也删除了一些章节。

  • selenium IDE: Selenium IDE 在本书中只做了简单的介绍,新的Selenium IDE已经支持了Chrome浏览器,但功能比较弱。

  • Python多线程:当初讲这个是为了实现自动化测试的并行,但pytest有插件支持,所以,不需要你了。88

  • BDD行为驱动,前几年好流行,现在用的人没那么多了。BDD并不适用于任何项目。

  • git/github, git已经被广泛适用到项目开发中,我个人是github重度用户,但这和自动化测试并无太直接联系。

~~~~~~~~~~~~~~~

总结:本书更聚焦Web/APP自动化测试,努力将一些概念和技术更精简,通俗易懂的让你学会,并应用到项目中。

如果要干货的请放弃购买,何为干货呢?请阅读github上面的开源项目,全是干货!我写了这么多年的测试技术新手教程,之所以能被大多测试接受,正是因为通俗易懂的讲解,加足够清晰的操作步骤,才能使他们快速上手,这个技术能用到什么程度,很多时候需要你在项目中不断去实践。每个测试人员的能力不一样,测试的业务不一样,太细节的业务问题并无通用性。

书中源码地址:https://github.com/defnngj/book-code

关于《Selenium3自动化测试实战--基于python语言》的更多相关文章

  1. 关于<meta NAME="keywords" CONTENT="">

    昨天终于以实习身份入职一家小创业公司,今天让我多看看别人的网页怎么写的,发现了一个以前都没关注过的东西. <meta name="keywords" content=&quo ...

  2. 转 :meta name的含义:<META http-equiv=Content-Type content="text/html; charset=gb2312">

    meta是什么?meta其实是html语言head区的一个辅助性标签.在几乎所有的网页里,我们都可以看到类似下面这段html代码:<META http-equiv=Content-Type co ...

  3. HTML <meta> 标签 遇到<meta http-equiv="refresh" content="0; url=">详解

    页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用中, ...

  4. 转 【<meta name="description" content=">】作用讲解

    今天在看别人写的网站代码,发现类似<meta name="Keywords" content="" >.<meta name="De ...

  5. <head>中<meta name="viewport" content="width=device-width,initical-scale=1"的作用>

    <meta name="viewport" content="width=device-width,initical-scale=1"的作用> co ...

  6. 关于<meta http-equiv="X-UA-Compatible" content="IE=edge" />问题

    我在做网页过程中都是在火狐浏览器下进行的,可是有一次我在IE浏览器下打开时却发现我设置的style.css中的大部分样式都失效率了,这个问题足足困扰了我两天,终于在百度的帮助下找到了答案,原来在网页的 ...

  7. 优先使用最新版本的IE 和 Chrome 内核 1 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    兼容模式 优先使用最新版本的IE 和 Chrome 内核 1 <meta http-equiv="X-UA-Compatible" content="IE=edge ...

  8. 论meta name= viewport content= width=device-width initial-scale=1 minimum-scale=1 maximum-scale=1的作用

    一.先明白几个概念 phys.width: device-width: 一般我们所指的宽度width即为phys.width,而device-width又称为css-width. 其中我们可以获取ph ...

  9. meta name="viewport" content="width=device-width,initial-scale=1.0" 解释

     <meta name="viewport" content="width=device-width,initial-scale=1.0">   c ...

  10. <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明

    X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与 content="IE=7"在无论页面是否包含<!DOCTYPE> ...

随机推荐

  1. Netty编码流程及WriteAndFlush()的实现

    编码器的执行时机 首先, 我们想通过服务端,往客户端发送数据, 通常我们会调用ctx.writeAndFlush(数据)的方式, 入参位置的数据可能是基本数据类型,也可能对象 其次,编码器同样属于ha ...

  2. 安卓开发之详解getChildFragmentManager和getsupportFragmentManager和getFragmentManager详解

    安卓开发之详解getChildFragmentManager和getsupportFragmentManager和getFragmentManager详解 getFragmentManager()所得 ...

  3. 开源项目托管到GitHub上

    前提是安装了git客户端 1.进入你的GitHub账户 2.点击new repositories   创建一个新的项目 输入项目名和项目描述   3.复制该项目的https路径 4.找一个文件夹来存放 ...

  4. 算法-一步步教你如何用c语言实现堆排序(非递归)

    看了左神的堆排序,觉得思路很清晰,比常见的递归的堆排序要更容易理解,所以自己整理了一下笔记,带大家一步步实现堆排序算法 首先介绍什么是大根堆:每一个子树的最大值都是子树的头结点,即根结点是所有结点的最 ...

  5. js,ts操作dom总结

    以上面为例: js获取placeholder节点 : document.getElementsByClassName("newTicket")[0].getAttributeNod ...

  6. .NET Core 3.0之深入源码理解HttpClientFactory(二)

      写在前面 上一篇文章讨论了通过在ConfigureServices中调用services.AddHttpClient()方法,并基于此进一步探讨了DefaultHttpClientFactory是 ...

  7. web设计_7_页面缺失图片或CSS的情况下仍然易读

    1. 在任何可能使用背景图片的地方应设置同样的颜色的背景色. 防止图片不能加载的情况下,页面内容同样保持较好可读性. 例如文字为白色,背景图为深色,如果不设置背景色,当背景图未成功加载, 而浏览器多数 ...

  8. 最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

    优化一览图 优化 笔者将优化分为了两大类:软优化和硬优化.软优化一般是操作数据库即可:而硬优化则是操作服务器硬件及参数设置. 1.软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCRIB ...

  9. AI中台——智能聊天机器人平台的架构与应用(分享实录)

    内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...

  10. __int64与long long、long的区别

    首先来看一看int.long.long long的取值范围 int                  所占字节数为:4                   表示范围为:-2147483648~2147 ...