关于《Selenium3自动化测试实战--基于python语言》

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语言》的更多相关文章
- 关于<meta NAME="keywords" CONTENT="">
昨天终于以实习身份入职一家小创业公司,今天让我多看看别人的网页怎么写的,发现了一个以前都没关注过的东西. <meta name="keywords" content=&quo ...
- 转 :meta name的含义:<META http-equiv=Content-Type content="text/html; charset=gb2312">
meta是什么?meta其实是html语言head区的一个辅助性标签.在几乎所有的网页里,我们都可以看到类似下面这段html代码:<META http-equiv=Content-Type co ...
- HTML <meta> 标签 遇到<meta http-equiv="refresh" content="0; url=">详解
页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用中, ...
- 转 【<meta name="description" content=">】作用讲解
今天在看别人写的网站代码,发现类似<meta name="Keywords" content="" >.<meta name="De ...
- <head>中<meta name="viewport" content="width=device-width,initical-scale=1"的作用>
<meta name="viewport" content="width=device-width,initical-scale=1"的作用> co ...
- 关于<meta http-equiv="X-UA-Compatible" content="IE=edge" />问题
我在做网页过程中都是在火狐浏览器下进行的,可是有一次我在IE浏览器下打开时却发现我设置的style.css中的大部分样式都失效率了,这个问题足足困扰了我两天,终于在百度的帮助下找到了答案,原来在网页的 ...
- 优先使用最新版本的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 ...
- 论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 ...
- meta name="viewport" content="width=device-width,initial-scale=1.0" 解释
<meta name="viewport" content="width=device-width,initial-scale=1.0"> c ...
- <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明
X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与 content="IE=7"在无论页面是否包含<!DOCTYPE> ...
随机推荐
- 微服务SpringCloud之熔断监控Hystrix Dashboard和Turbine
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数 ...
- HashMap源码__tableSizeFor方法解析
tableSizeFor(int cap)方法返回不小于指定参数cap的最小2的整数次幂,具体是怎么实现的呢?看源码! /** * Returns a power of two size for th ...
- Java EE产生的背景
为了满足开发多层体系结构的企业级应用的需求,Java公司的创始人Sun公司在早期的J2SE(Java 2 Platform Standard Edition)基础上,针对企业级应用的各种需求,提出了J ...
- 第2个C# Winform实例,寻找三角形的位置
这里,在第一个例子的基础上,稍微做修改,达到最终定位三角形位置的目的. 先在网络上找一张包含有三角形的图片,我们这里使用一张有三个三角形和一些标记的图片来处理. 原图: 先贴结果图片:左侧,中间,右侧 ...
- 关于 64位系统 java连接access 报错java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
报错的原因是url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=E:/公司/2000.mdb"; 这样是不行 ...
- kubernetes 1.15.1 高可用部署 -- 从零开始
这是一本书!!! 一本写我在容器生态圈的所学!!! 重点先知: 1. centos 7.6安装优化 2. k8s 1.15.1 高可用部署 3. 网络插件calico 4. dashboard 插件 ...
- selenium Java中常见等待的几种形式
前言 在自动化测试中,我们经常会碰到编写脚本过程中操作某个元素的时候, 需要等待页面加载完成后,才能对元素操作,否则会报错,提示页面元素不存在异常,我们需要等待元素加载完成后,才能继续操作,而Sele ...
- AbstractList
概述 此类提供 List 接口的骨干实现,以最大限度地减少实现“随机访问”数据存储(如数组)支持的该接口所需的工作.对于连续的访问数据(如链表),应优先使用 AbstractSequentialLis ...
- Mybatis使用动态sql
动态sql 常见的几种:trim.where.set.foreach.if.choose.when 下面通过案例一一演示 if语法 <select id="selectIfTest1& ...
- ansible-service
#service#查询服务状态 ansible server01 -m service -a "name=httpd state=started" #停止服务 ansible se ...