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. Excel催化剂开源第31波-pdf相关功能实现及类库介绍

    在Excel催化剂刚推出的pdf相关功能中,反馈很热烈,不止是用户层面好多人喜欢,也听到在.NET开发群里有询问pdf在winform上展现的功能诉求,一段时间没写开源篇,生怕大家以为Excel催化剂 ...

  2. Git常用命令--了解这些就够了

    <div class="show-content-free"> <blockquote> Csdn 将本地工程push到远程 方式一: 建立本地仓库 git ...

  3. c语言进阶8-数据结构

    一.  数据结构的起源: 1.        为什么要学习数据结构 阿基米德说过:“给我一个支点,我就能翘起地球”.那么给我一个程序,我就能用好程序,给我一个结构,我就能把内容填充完成.打个比方,一个 ...

  4. Git的一些简单而且常用的操作

    转载自我自己的博客 介绍 很多初学者可能并不太清楚Git 与GitHub 这两个概念的联系和区别,在这里我大致介绍一下这两个名词. Git 是一个免费.开源的分布式版本控制系统(VCS).版本控制系统 ...

  5. 【MySQL】(六)锁

    开发多用户.数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另一方面还要确保每个用户能以一致的方式读取和修改数据.为此就有了锁(locking)的机制,同时这也是数据库系 ...

  6. ThinkPHP 添加数据到数据库失败

    ThinkPHP 添加数据到数据库失败 一般情况下会先检查一下几个方面 检查控制器或Model名是否有误 检查需要插入的数据是否为空或者缺失参数 检查数据表名及字段名称(大部分下都是字段名有误出错的) ...

  7. memset函数怎么用嘞↓↓↓

    1.我也曾天真的以为 memset(a,0,sizeof(a))中的0可以用任意数替换 实际上这是错误的 memset的功能是将一快内存中的内容以单个字节逐个拷贝的方式放到指定的内存中去. 2.介绍几 ...

  8. Anaconda大法好,为什么要用Anaconda(附linux安装与用例)

    距离写上一个博客已经过去很久了,注册的时候我还是个大三学生抱着windows系统的visual studio在OPENCV等等复杂组件下面瑟瑟发抖,一不小心就担心hpp找不到了,依赖库没了,或者安装了 ...

  9. 从深处去掌握数据校验@Valid的作用(级联校验)

    每篇一句 NBA里有两大笑话:一是科比没天赋,二是詹姆斯没技术 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380) ...

  10. 【iOS】删除 main.storyboard 的问题

    一直没用 main.storyboard, 后来索性把它删了,结果还出了问题: Terminating app due to uncaught exception 'NSInvalidArgument ...