产品特色
编辑推荐
全书以作者的亲身经历来贯穿整个知识点的讲解,以性能测试、自动化测试在企业级的应用为主,并给出自己多年的经验。帮助读者掌握并运用好性能测试和自动化测试技术,不涉及太基础的知识,一切以实际为主,摆脱假大空。
本书也介绍了流行的测试工具与实用技巧,并在大部分人关心的职业发展上做提点,让读者更加清晰地认识规划现状与未来。全方位解决读者学而无法致用的现象。
本书适合所有的测试工程师、测试经理、开发工程师、运维工程师、项目经理以及所有涉及软件性能、自动化的各行业工作者阅读。
内容简介
本书分为两大部分:
*部分技术篇:以全新的角度来解释什么是性能测试和自动化测试,不仅以实际案例讲解了LoadRunner、Jmeter、Soapui、Appium、移动端APP测试、前端性能等内容,也讲解了大家*为头疼的两大难题,性能测试通用分析思路和报告编写,同时也介绍了如何设计和开发轻量级自动化测试框架。
第二部分管理篇:目前市面上缺少测试管理方面的内容,而本部分内容以作者本人的亲身经历来分享对测试行业的看法以及如何进行测试团队的建设、管理、绩效考核等,没有高大上的概念,以通俗易懂的语言体现,是管理者的必读内容。
作者简介
赵强(网络昵称:小强),获得国际CSTE-QAI认证、中国软件评测师认证、人力资源管理师认证。有多年的IT从业经验,曾在新浪、搜狐、聚美优品、人民网等知名互联网公司从事过开发、测试、产品、管理方面的工作。曾从零组建过多个测试团队并主导完成过多个大型项目的性能测试、自动化测试以及测试管理工作。
2016年创办互联网音频节目“挨踢(IT)脱口秀”,短短时间在荔枝FM上的播放量已超过100万。
同时继续在教育领域深耕,以小强测试独立品牌运营,在线教育平台学员数超过65万,并获得51CTO学院“*佳人气讲师”、“特级讲师”等荣誉。代表作《小强系列高级测试课程》获得中国版权认证,也被多家机构、大学院校、企业公司作为视频教材,是互联网教育的先驱者。
目录
第1章全新认识性能测试和自动化测试
1.1性能测试到底是什么
1.2性能测试分层模型
1.2.1前端层
1.2.2网络层
1.2.3后端层
1.3自动化测试到底是什么
1.4自动化测试是否万能
1.5自动化测试分层模型
1.5.1UI层
1.5.2接口层
1.5.3单元层
1.6初学者如何选择学习哪种测试技术
1.7本章小结
第2章LoadRunner脚本开发实战精要
2.1LoadRunner介绍
2.2使用LoadRunner完成业务级脚本开发
2.2.1项目介绍
2.2.2需求分析
2.2.3脚本开发
2.3使用LoadRunner完成H5网站的脚本开发
2.4Mock实战精要
2.5使用LoadRunner完成接口级脚本开发
2.5.1单接口的测试方法
2.5.2接口依赖的测试方法
2.6使用LoadRunner完成移动APP的脚本开发
2.7使用LoadRunner完成MMS视频流媒体测试
2.8场景设计精要
2.9去“并发数”
2.10使用LoadRunner完成接口级功能自动化测试
2.11本章小结
第3章Jmeter脚本开发实战精要
3.1Jmeter介绍
3.2使用Jmeter完成业务级脚本开发
3.3使用Jmeter完成接口级脚本开发
3.3.1单接口的测试方法
3.3.2接口依赖的测试方法
3.4使用Jmeter完成JDBC脚本开发
3.4.1单SQL语句测试
3.4.2多SQL语句测试
3.5使用Jmeter完成JMS Point�瞭o�睵oint脚本开发
3.5.1JMS介绍
3.5.2ActiveMQ介绍
3.5.3JMS Point�瞭o�睵oint脚本开发
3.6BeanShell脚本在Jmeter中的应用
3.7使用Jmeter完成Java自定义请求
3.8Jmeter轻量级接口自动化测试框架
3.9在Jmeter中使用Selenium WebDriver完成测试
3.10本章小结
第4章性能测试通用分析思路和报告编写技巧
4.1通用分析思路
4.1.1观察现象
4.1.2层层递进
4.1.3缩小范围
4.1.4推理分析
4.1.5不断验证
4.1.6确定结论
4.2测试报告编写技巧
4.3本章小结
第5章SoapUI脚本开发实战精要
5.1SoapUI介绍
5.2SOAP WebService接口功能自动化测试
5.2.1单接口的测试方法
5.2.2接口依赖的测试方法
5.3SOAP WebService接口负载测试
5.4SOAP WebService接口安全测试
5.5SoapUI轻量级接口自动化测试框架
5.6本章小结
第6章Appium脚本开发实战精要
6.1Appium介绍
6.2控件的识别与定位
6.3常用的操作方法
6.4Appium轻量级UI自动化测试框架
6.5本章小结
第7章浅谈移动APP非功能测试
7.1移动APP启动时间测试
7.2移动APP流量测试
7.3移动APP CPU测试
7.4移动APP电量测试
7.5移动APP兼容性测试
7.6移动APP测试工具和云测平台
7.6.1常用的移动APP测试工具介绍
7.6.2常见云测平台介绍
7.7移动应用基础数据统计方案介绍
7.8本章小结
第8章前端性能测试精要
8.1HTTP协议简介
8.2HTTP请求和响应的过程
8.3前端性能优化方法
8.3.1减少HTTP请求数
8.3.2图片优化
8.3.3使用CDN
8.3.4开启GZIP
8.3.5样式表和JS文件的优化
8.3.6使用无cookie域名
8.3.7前端代码结构优化
8.3.8其他优化方法
8.4常用前端性能测试工具
8.4.1Firebug
8.4.2利用Chrome测试移动端网页性能
8.4.3HttpWatch
8.4.4YSlow
8.4.5PageSpeed
8.4.6埋点测试
8.4.7基于ShowSlow的前端性能测试监控体系
8.4.8基于YSlow和Jenkins的前端性能测试监控体系
8.4.9其他前端性能测试平台
8.5真实网站的前端性能测试
8.6本章小结
第9章测试团队的组建与管理
9.1重新认识所谓的管理
9.2人人都是管理者
9.3测试团队常见的组织架构模型
9.4小议扁平化组织结构
9.5如何组建测试团队
9.6如何高效管理测试团队
9.6.1初创期测试团队的管理
9.6.2发展期测试团队的管理
9.6.3稳定期测试团队的管理
9.7如何考核和激励测试团队
9.7.1如何进行测试团队的考核
9.7.2如何激励测试团队
9.8人性管理
9.9缺陷知识库的建立
9.10如何高效地开会和写日报
9.11PDCA环
9.12本章小结
第10章畅谈测试工程师未来之路
10.1软件测试行业的现状与发展趋势
10.2如何成为优秀的测试工程师
10.3再谈测试工程师的价值
10.4危机!测试工程师真的要小心了
10.5测试工程师职业发展路线图
10.6本章小结
第11章一线测试工程师访谈录
11.190后美女的全能测试蜕变之路
11.2从功能测试到性能测试的转型之路
11.3一只菜鸟的成长之路
11.490后帅哥的测试技能提升之路
11.5本章小结
附录A参考资料
附录BLoadRunner常见问题解决方案汇总
B.1LoadRunner和各OS以及浏览器的可兼容性
B.2LoadRunner无法安装
B.3录制的时候无法启动IE
B.4录制脚本为空
B.5示例网站WebTours无法启动
B.6Controller中运行场景有很多超时错误
B.7录制完成有乱码
B.8LoadRunner中对HTTPS证书的配置
B.9LoadRunner运行时常见报错解决方案
附录C性能测试文档模板汇总
C.1场景用例模板
C.2性能测试计划模板
C.3性能测试方案模板
C.4性能测试报告模板
C.5前端性能对比测试结果模板
附录D自动化测试用例模板
附录E管理相关文档模板汇总
E.1日报模板
E.2绩效考核方案模板
后记
精彩书摘
第3章Jmeter脚本开发实战精要
LoadRunner学习完之后我们趁热打铁来学习另一款热门的测试工具Jmeter,虽然它没有LoadRunner那么好理解、易使用,但仍有让人爱不释手的优点,比如,开源和插件丰富、扩展性强、做接口功能自动化也非常好用等,本章就将带领大家进行全面的学习。需要提醒的是不会涉及基础的知识和操作,大家可自行到我的博客或附录中的参考资料中查看。
3.1Jmeter介绍
Jmeter是一款开源的测试工具,既可以做性能测试,也可以做功能测试,在很多朋友的认知里Jmeter和LoadRunner都是做性能测试的工具,但其实Jmeter做接口功能自动化测试也非常好用,而且现在很多企业也都在这么用。
Jmeter的优点很多,比如,扩展性非常好,有丰富的插件。因为是开源的,所以源代码也可以看到,如果有特殊需求你可以自己去二次开发Jmeter。有优点必然会伴随着缺点,易用性不高、参考资料多数为英文,尤其对于小白朋友来说,里面的概念太复杂,操作也有点别扭,入门并不轻松,这也是为什么我一般建议小白朋友们先去学习LoadRunner再来学Jmeter的原因之一。
更多的介绍就不多说了,大家可自行查看官网https://jmeter.apache.org/。我们这里使用的是Jmeter 3.0*新版。
3.2使用Jmeter完成业务级脚本开发
这里继续以2.2节中的项目为例进行讲解。因为之前我们已经了解了项目背景、需求等信息,所以此处不再讲述,直接进行脚本的开发。
1. 登录脚本
本脚本的逻辑较为简单,大致思路是: 在线程组下新建两个HTTP请求,其中一个是完成访问登录页,另一个是完成登录的数据提交,其中对用户名进行参数化。大致实现步骤如下。
1) 访问登录页的HTTP请求如图3.1所示。
图3.1访问登录页
2) 提交登录数据的HTTP请求,如图3.2所示,其中对username进行了参数化。
图3.2提交登录请求
3) 用户名参数化,如图3.3所示。除此之外,还可以根据实际情况来适当添加检查点等操作。
图3.3参数化
2. 浏览单品页脚本
此脚本也较为简单,用一个HTTP请求即可,其中对商品ID进行参数化,从而模拟访问不同的单品页,如图3.4所示。
图3.4浏览单品页
3. 搜索脚本
本脚本也是利用一个HTTP请求完成,但有一点需要注意就是必须勾选“自动重定向”。因为搜索业务存在一个跳转,而勾选“自动重定向”后如果请求的HTTP得到的响应是301或者302时,Jmeter会自动重定向到新的页面,如图3.5所示。
图3.5搜索脚本
4. 下单支付脚本
本脚本也是使用HTTP请求来模拟完成对每个业务的操作。很多小白朋友在初次使用的时候过度依赖于录制,即利用Badboy进行脚本录制,之后导入Jmeter中。这种方式带来的好处显而易见,但缺点也很明显,你没办法清楚地知道每个请求对应的业务是什么。在本项目中如采用录制的方式会丢失部分请求数据,造成脚本无法运行。所以个人建议还是手工编写请求较为妥善。因为脚本过长,这里我们只举例讲解具有代表性的步骤。比如,加入购物车,如图3.6所示。
图3.6加入购物车脚本
本脚本中需要注意的有两点。
�r 路径字段的填写一定要正确,明确使用的是哪个方法。
�r goods参数填写一定要正确,这里传递的就是JSON串。如果你不知道这个JSON串怎么来的,可以通过抓包等手段来分析。具体的含义已经在2.2节中讲解过,此处不再讲述。
对于不少朋友来说,类似加入购物车这样的请求就是个天大的难题,在小强性能测试班的学员中也得到了证实。基础的匮乏、常识的缺失都是导致我们进步缓慢的元凶,尤其是初次看到一些“不正常”的数据时往往会不淡定,没有主动思考的习惯,这是大家需要特别注意和提升的地方。
所有脚本的大致框架编写完成后,对部分脚本做一些优化即可进行测试了。这里特别指出,如果你利用Jmeter来完成较大并发量的性能测试,建议使用分布式,这样得出的数据较单点式更加准确。
小 强 课 堂
对于业务级的脚本我们还是建议更加真实地模拟用户的请求操作,所以像LoadRunner一样,也需要加入一定的思考时间,在Jmeter中可以使用固定定时器或者高斯随机定时器来实现。
除此之外,如果想在Jmeter中达到业务比例的分配,一般有三种实现方式。
�r 建立多个线程组,分别设置运行策略。
�r 使用逻辑控制器下的吞吐量控制器,可设定固定次数或百分比模式。
�r 使用逻辑控制器下的If控制器,类似2.7节中LoadRunner的控制分配比例代码。
通过本节讲解,更加确定了熟悉业务以及业务对应的请求是多么重要。也再次说明了一件事情: 不论你是做性能测试还是自动化测试,永远脱离不了业务,不要觉得做手工测试就枯燥,这正是你学习业务、深入理解业务请求的绝佳时机,永远不要小看你看不起的工作,你看不起只能说明你没看透。
3.3使用Jmeter完成接口级脚本开发
此处我们继续使用在2.3节中用到的老黄历接口,接口的具体信息不再讲述,我们仍然从单接口和接口依赖两个方面进行讲解。
3.3.1单接口的测试方法
我们先来看如何完成单个接口的性能测试,大致实现步骤如下。
1) 启动Jmeter。
2) 新建线程组。
3) 在线程组下新建一个HTTP请求。
4) 在HTTP请求中填入接口信息,包括地址、参数、请求方法(GET)等,如图3.7所示。
图3.7HTTP请求
5) 新建一个查看结果树监听器。
6) 运行脚本验证结果,如图3.8所示,结果正确。
图3.8运行结果
7) 优化脚本。如果有需要,可以对参数进行参数化等操作,在*终压测的时候建议把“察看结果树”关闭(一般只是在调试脚本的时候使用),只保留必要的监听器即可,之后就按照压测策略进行即可,和普通的性能测试并无区别。
3.3.2接口依赖的测试方法
接口的依赖是什么概念已经在2.3节中讲解过,此处不再讲述。为了模拟这样的接口依赖,我们大致的思路是建立两个老黄历接口(分别为1和2),把老黄历1接口响应中的yangli字段传递到老黄历2接口中的入参date里,大致实现步骤如下。
1) 保持3.3.1节中的脚本不动,并改名为老黄历1。
2) 新建一个HTTP请求,命名为老黄历2,并填入正确的接口信息,如图3.9所示。其中对“同请求一起发送参数”处的date变量进行预留,这里我们就要填写老黄历1接口中返回的响应数据yangli字段的值。
图3.9老黄历2接口
3) 提取老黄历1接口中的响应数据yangli字段的值。在老黄历1接口下面建立JSON Path PostProcessor来完成,如图3.10所示。其中JSON Path expressions是JSON的表达式提取器,通过层级关系写到yangli(也就是JSON中的key),即可把对应的value取出来了; Variable names则是用于保存取出来的值,这样后续要用这个值的时候在需要的地方填入${yangli_response}即可使用。
……
前言/序言
“因为不是天生丽质,所以必须天生励志。”这句话是我特别喜欢的一句话,我们大部分人天生并没有什么出众的天赋,只能靠后天不断的努力才行,这是一个痛苦甚至让人绝望的过程,但是如果你换个心态来体会也许另有一番滋味。
写书也一样,不是为了说明自己有多牛,而是知识经验的总结、梳理与分享,把想法用书写的形式表现出来而已,对于自己是一个很好的梳理过程,对于亲爱的读者来说也是很好的学习过程。
本书并不是一本纯技术书籍,它更像是一本系统性的参考书,能帮助大部分读者朋友深入理解性能测试和自动化测试的意义,也能帮助有多年工作经验正处于迷茫阶段的朋友排忧解难,还能给那些刚刚步入管理岗位的菜鸟们提供指导(尤其是其中的团队建设、绩效管理等是很多朋友经常问我的问题,以后我就不用再一遍遍重复啦),可以说是测试工程师必读的一本书籍。当然,如果你是“高手、大牛、大神”等级别的请自动忽略本书吧。
为什么要写这本书
2016年以来我一直以“小强软件测试”独立品牌进行运营,和其他机构无任何关系,可以更加纯粹、专心地做一些学习和研究。写本书纯属是突发奇想,写书的过程极其累,费神费脑,可能大家看到的短短一章也许是花了3天时间写出来的,字数和时间往往不是正比的关系,如果你亲自写一次你就能明白我所说的“痛苦”: 太!累!了!
但为什么还要写呢?主要是因为自己接触了太多的朋友,不论是在活动中、交流中还是在我的培训班中,绝大部分新手朋友对性能测试和自动化测试没有什么了解,有了解的也基本都是不完善甚至错误的,这就造成了学习时的困难,效率极其低下,再加上有不少朋友咨询我这些方面的问题并强烈要求我再写一本书出来,索性满足大家的愿望,整理了这方面的经验写成书籍和大家一起交流分享。
这里请允许我无耻地炫耀一下,我的不少学员已经步入了管理岗位。但是他们在初次接触管理、带领团队方面经验上比较欠缺,而软件测试方面的管理书籍极其匮乏,大家问我的问题也有很多共性,所以也在本书的后几章节中把自己带团队、管理团队方面的经验写出来和大家分享,希望能给大家带来一点帮助和启发。
很多朋友之所以会步入性能测试、自动化测试领域,也是因为职业发展到了一个瓶颈期,同时感觉迷茫无助,本书*后以真实的人物经历以及职业发展指导两个方面来帮助读者解答疑问,相信你一定会有不少收获。
*后总结一下,本书不会涉及基础的知识,所以在阅读技术类章节之前要求读者*好有一定的基础,无基础的朋友参考附录中的资料来学习。不论之前大家是否了解性能测试和自动化测试,请耐心读完本书,你一定会有非常大的收获。
本书面向的读者对象
在阅读技术类章节时*好有一定的基础,这样理解起来会比较容易。非技术类章节任何人都可以阅读。不过即使你没有性能测试和自动化测试的经验,抑或你刚接触它们,本书都会对你有所帮助,至少在认知以及学习方法上会给你带来很大的帮助。
读者对象包括但不限于对性能测试、自动化测试感兴趣的测试工程师、开发工程师、运维工程师、测试经理以及希望了
小强软件测试疯狂讲义 性能及自动化/水木书荟 电子书 下载 mobi epub pdf txt