软件测试

软件测试基础笔记
第一节 软件测试的概念及分类
1、软件测试概念:通过人工或自动手段对软件进行功能、性能、接口、安全、数据库、底层架构等进行深入、全方位测试的工作,全面保障软件质量能满足用户需求。
2、软件测试的法则:1功2可3易4效5维6移
案例:桌子 电梯 水杯
3、软件测试的目的:
1、测试是为了发现系统中的错误而执行程序的过程
2、好的测试方案在于尽可能发现迄今为止尚未发现的错误
3、成功的测试是为了发现至今为止尚未发现的错误的测试
4、软件测试的原则:
(1)所有的软件测试都应追溯到用户需求
(2)应尽早地和不断地进行软件测试
(3)完全测试是不可能的,测试需要终止
(4)测试无法显示系统所有潜在的缺陷
5、软件测试的对象:
软件测试不等于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编码等各个阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象
(1)程序(2)数据(3)文档(4)过程(5)硬件(6)网络
6、优秀的软件测试应具备的素质
基本素质:打破砂锅问到底
1、探索精神:软件测试员不会害怕进入陌生环境(不害怕进入新环境,接触不同项目)
2、故障排除能手(善于发现底层问题,透过现象看本质)
3、不懈努力(不心存侥幸,尽一切可能去寻找bug)
4、创造性(富有创意、超常手段寻找缺陷)
5、追求完美(尽力追求完美)
6、判断准确(决定测试内容,测试时间,看到问题是否算作真正的缺陷)
7、老练稳重(不害怕坏消息)
8、说服力(善于表达)
7、软件测试的分类:
1、按阶段划分:单元测试、集成测试、系统测试、验收测试
(1)单元测试:测试粒度最小,一般由开发小组采用白盒测试,主要测试单元是否符合设计(静态测试和动态测试)
(2)集成测试:介于单元测试和系统测试之间,起到桥梁作用,一般由测试小组采用白盒加黑盒的方式来测试,既验证设计又验证需求。
(3)系统测试:力度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”
(4)验收测试:验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行
2、白盒测试、黑盒测试、灰盒测试
(1)白盒测试:测试源代码,主要在系统内部结构中测试
(2)黑盒测试:主要在应用端和服务器端,不用接触系统内部结构
(2)灰盒测试:介于白盒和黑盒之间的测试
3、静态测试:不用执行程序,通过人工或程序分析来证明软件的正确性
4、动态测试:通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题
8、黑盒测试策略
1、集成方法
1、自顶向下集成
1、方法:从主控模块开始,沿着程序的控制层次向下延伸逐步添加新的模块
2、添加模块的过程:深度优先、广度优先策略
3、优点:能够在测试早期检验主要的控制和关键的模块
4、缺点:需要编写大量的存根模块
2、自底向上集成
1、优点:只需编写驱动模块,无需存根模块
2、缺点:只有到最后才能看到程序的全貌
2、驱动模块:被测模块上层的驱动模块
3、存根模块:被测模块下层的存根模块
9、C/S与B/S区别
(1)C/S:需要安装客户端才可进行管理操作:用户的程序主要在客户端;开发比较容易,操作简单,但应用程序的升级和客户端维护较为困难。qq,微信,支付宝,百度地图,美团外卖
(2)B/S软件应用的业务逻辑完全在应用服务器端实现,用户操作完全在web服务器中实现,客户端只需要浏览器即可进行业务处理,只有初期一次性投入,有利于软件项目控制和避免IT黑洞。人人网,百度,csdn,淘宝网
第二节 黑盒测试策略及测试范围,架构定义
1、UI测试:用户界面测试,如图片像素,页面布局,CSS样式等
2、配置测试:测试系统服务器以及测试机配置是否满足产品及测试的要求(性能测试之前和手机端、PC端兼容性测试之前需要做配置测试)
3、表单值域测试:测试表单输入框的等价类、边界值,正交法等
4、数据完整性测试:测试系统的数据库是否异常,push、pull是否正确,是否存在遗漏的数据表。测试内容:(1)测试数据增删改是否准确(2)测试数据排序规则(排序算法)(3)动态数据和静态数据的测试
5、逻辑测试:测试软件的业务逻辑是否正确
6、业务流程测试:测试软件前后台的业务流程,每个分支和功能点是否均可跑通
7、逆向思维测试:测试软件在非正常操作下的处理事物的能力
8、接口测试:测试软件内部接口以及外部接口返回值是否正确,提示语是否正确并且友好
9、本地化测试:测试系统在外界环境下是否能够满足用户需求,例如翻译是否准确
10、回归测试:在项目上线并进行更新修改后,需要进行回归测试,确认之前没有问题的模块依然正常。
11、冒烟测试:用于集成测试之后的测试方法,确认软件是否满足系统测试要求(进入集成测试阶段与系统测试阶段的判断标准)
12、Cookie测试:测试软件缓存是否正确,清理缓存后的表现等
13、功能测试:就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求。
14、自动化测试:属于功能测试的范围,一般用于回归测试,减少很大工作量
15、性能测试:测试软件在各种状况下的性能,如吞吐量,响应时间,cpu占用率,内存占用率等情况
16、易用性测试:测试软件是否易用,主观性比较强。一般要根据很多用户的测试反馈信息,才能评估易用性
17、故障转移和恢复测试:模拟服务器在崩溃后备用服务器的承载能力,避免服务器崩溃后备用服务器不工作的情况
18、错误推断法:当发现一个BUG后,通过经验和直觉推测出可能因此BUG引发的其他问题的可能性
19、安全性测试:测试系统防止非法侵入的能力(sql注入和渗透测试)
20、兼容性测试:测试系统与其他软、硬件兼容的能力(PC端和APP端)
21、Alpha测试:一种先期的验收测试,此时系统刚刚开发完成(内部验收)
22、Beta测试:一种后期的验收测试,此时系统已通过内部测试,大部分错误已经改正,即将正式上线(外部验收)
23、随机测试:在系统内进行随机的页面和流程测试,一般由有经验的测试人员进行,通常不采用
第三节 设计测试用例方法及设计用例规范
1、测试用例:为实施测试,向测试系统所提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。其实就是要解决要测什么,怎么测和如何衡量的问题
2、测试用例的编写规范:
1、基本信息
(1)功能模块
(2)编写人
(3)执行结果
2、主体信息
(1)编号
(2)测试对象
(3)测试点
(4)预置条件
(5)测试步骤
(6)测试数据
(7)预期结果
8、用例优先级:高,中,低
3、执行结果
执行通过/不通过/未执行/无法执行,执行时间,缺陷编号
4、编写测试用例的原则:百分之百覆盖需求
3、设计测试用例的方法
1、大纲法:拆分系统模块
2、等价类:用来找到所有的正例和反例
1、有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合
2、无效等价类:是指对于程序的规格说明来说是不合理的、无意义的输入数据构成的集合
3、必填项
3、边界值:是对功能,值域方面的测试;最大值,最小值,最大值+1,最小值-1,中间值
字符长度的边界值
值域大小的边界值
4、因果图:是针对小组合的功能进行设计用例
5、场景法:基于系统流程的测试
6、正交法:组合过多用因果图不易看清的情况下
7、正则表达式:用事先定义好的规则,来控制输入框的参数内容
8、错误推断法:当发现一个BUG后,通过经验和直觉推测出可能因此BUG引发的其他问题的可能性
4、设计测试用例的原则:
1、至少覆盖所有的状态一次
2、至少覆盖所有的事件一次
3、至少覆盖所有的路径一次
5、测试用例优先级划分:
1、高:用户经常执行的动作及业务操作,必须保证功能性是稳定的,以及重要的接口和涉及金钱交易的用例
2、中:区域的功能用例变得更详细,用例多数方面包括边界值、逆向思维等测试用例
3、低:此用例通常是最少被用户执行的动作
第四节 软件测试流程及生命周期模型
1、软件测试流程
1、测试计划阶段(需要评审)
1、内容包含:测试目的,项目背景,参考文档,提交文档,术语定义,测试需求,测试策略,系统资源,测试工具,测试进度,里程碑,任务安排,风险评估,测试通过标准,附录
2、测试设计和开发阶段
1、分析测试需求、设计测试用例(需求评审)
2、准备数据、开发测试工具、脚本
3、测试实施阶段(性能测试)
按照设计好的用例、准备好的数据和制定的测试策略,实施具体的测试过程
4、测试评估阶段
测试总结、缺陷分析、过程评估
5、软件测试流程梳理
拿到需求文档——》需求评审——》编写测试计划——》计划评审——》编写测试用例——》用例评审——》拿到接口文档——》进行接口测试——》进行接口压测——》进行接口安全测试——》冒烟测试——》进入系统测试阶段,执行测试用例——》开展测试轮次,每轮提交测试报告——》提交总结性测试报告——》负载和稳定性测试——》性能测试报告——》进行安全渗透——》安全测试报告——》验收测试——》alpha,beta——》发布上线——》维护迭代
6、软件测试的模型
1、软件生命周期:是指软件开发和测试全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、发布后的维护的过程
2、瀑布模型
1、特点
1、为项目提供了按阶段划分检查点
2、当前阶段完成后只需关注后续阶段
3、在迭代模型中应用瀑布模型
2、缺点
1、在项目的各个阶段之间很少有反馈
2、只有在项目生命周期后期才能看到结果
3、通过过多的强制完成日期和里程碑来跟踪各个项目阶段
3、理解
瀑布模型不可逆,即对回滚有严格要求,只能回滚到本环节的上一环节,该模型多适用于外包项目
3、W模型
1、特点
1、测试和开发是同步进行的
2、测试的对象不仅仅是程序,还包括需求和设计
3、尽早发现软件缺陷可降低软件开发的成本
2、缺点
1、存在局限性,在W模型中,需求、设计、编码等活动被视为串行的,并且测试和开发保持着一种线性的前后关系,上阶段完全结束,才能正式开始下阶段工作
2、无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临的困惑
3、理解
W模型严谨,测底层,不迭代,标准高,该模型多用于国家、政府、银行等大型国企项目
4、V模型
1、特点
1、V模型的过程从左到右,描述了基本的开发过程和测试行为
2、V模型的价值在于它非常明确地标明了测试过程中存在的不同级别
3、能够清楚的描述这些测试阶段和开发过程期间各阶段的对应关系
2、缺点
1、由于它的顺序性,正式进入测试时,有些bug不容易找到其根源,代码修改起来困难
2、由于需求变更较大,所以返工量大
3、理解
公司初创型项目多适用于V模型
5、H模型
1、特点
1、H模型将活动完全独立出来,形成了一个完全独立的流程,贯穿于整个产品的生命周期,与其他流程并发进行,某个测试点准备就绪时,就可以从测试准备阶段进入测试执行阶段
2、软件测试可以尽快尽早的进行
3、软件测试可以根据被测物的不同而分层次进行
2、缺点
要有完整的测试团队
6、螺旋模型
1、特点
1、引入了其他模型不具备的风险分析,当存在重大风险时有机会停止,进行变更减小损失,特别适合与大型复杂的系统
2、以小的分段来构建大型系统,使成本计算变得简单容易
3、客户始终参与每个阶段的开发,保证项目不偏离正确方向
4、随着项目推进,客户始终掌握项目的最新信息
5、对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更
2、缺点
1、建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户的需求
3、理解
电商项目多用于螺旋模型
7、X模型
1、特点
1、针对单独程序片段所进行的相互分离的编码和测试,伺候将进行频繁的交接,通过集成最终可执行的程序,然后再对这些可执行程序进行测试
2、X模型还定位了探索性测试,这是不进行事先计划的特殊类型测试,这一方式能帮助有经验的测试人员在测试计划之外发现更多的软件错误
2、缺点
1、X模型的测试容易造成人力、物力、财力的浪费
2、对测试人员的熟练程度要求较高
3、不好衡量工作量
第五节 缺陷架构定义及缺陷管理
1、软件缺陷
1、通常又被叫做Defect或者Bug,即为软件或程序中存在的某种破坏正常运行能力的问题、错误,其存在会导致软件产品在某种程度上不满足用户的需要。
2、从产品内部看,缺陷是软件产品开发或维护过程中存在的问题、错误
3、从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背
2、什么是缺陷?
1、总的来说,不能满足用户确定的需求就是缺陷
2、软件未达到产品说明书标明的功能
3、软件功能出现了产品说明书指明不会出现的错误
4、软件功能超出产品说明书指明范围
5、软件未达到产品说明书虽未指出但应达到的目标
3、缺陷产生的原因
1、工期短,任务大
2、程序设计错误
3、文档不完善
4、需求不断变化
5、软件的复杂性
6、沟通交流不够
7、软硬件支持不完善
4、缺陷报告处理流程
测试人员(提交缺陷报告)——》测试经理或开发(分析缺陷报告)——》研发人员(处理缺陷报告)——》测试人员(反测报告)——》测试经理或测试人员(关闭缺陷报告)
备注:测试人员的反测报告通过进入测试经理或测试人员(关闭缺陷报告)阶段;如果未通过返回研发人员(处理缺陷报告)阶段
5、缺陷报告分类
1、状态:
1、待确认
2、新提交
3、已分配
4、问题未解决
5、待返侧
6、待归档
7、已归档
2、处理意见
1、已修改
2、不是问题
3、无法修改
4、以后版本解决
5、保留
6、重复
7、无法重现
6、bug严重程度划分
1、致命
系统崩溃,404报错,500报错。造成系统或应用程序崩溃、死机、系统悬挂或造成数据丢失、主要功能组完全丧失等,服务器死机闪退,页面出现乱码,蓝屏
2、严重
功能未实现,逻辑错误,影响用户正常操作,与需求完全不符,或因此bug导致后续功能无法测试的
3、一般
功能实现但不正确,功能上的错误,页面中的错误,逻辑实现但不正确
4、轻微
文章内容与实际不符,错别字,图片错误,建议性的bug等
7、优先级划分
1、高(p1):bug严重级别较高,需要立刻解决的,或者一般级别的但是比较棘手的,对用户操作造成影响的
2、中(p2):bug严重级别一般的,不影响用户正常操作的,对用户操作未造成影响的
3、低(p3):bug严重级别处于较低的,可以下一次Alpha测试前再解决的不太严重的bug
4、一般(p4):建议性的bug,可改不可改,无伤大雅
8、如何有效记录缺陷?
1、保证重现缺陷
2、分析故障(使用最少步骤复现故障)
3、包含所有重现缺陷的必要步骤
4、方便阅读
5、尽量简单(一个缺陷一个报告)
6、注意自己的语气
9、缺陷报告的内容及模板
1、缺陷报告的作用
1、缺陷的分类
2、缺陷的记录
3、缺陷的跟踪
2、缺陷报告的基本信息
版本、模板、操作系统、问题原因、严重程度、优先级、提交人
3、缺陷报告的记录
摘要,bug定位,复现步骤,预期结果,实际结果,URL附件截图,缺陷的跟踪,缺陷的跟踪状态
4、缺陷报告的准则
准确-清晰-简洁-完整-一致
5、bug的处理结果
已解决,不予解决,延期处理,设计如此,bug,无法重现,外部原因
6、bug的处理流程
激活,已确认,已解决,重新激活,已关闭
第六节 测试计划及测试报告的编写
测试计划内容
1、测试计划概念:一个叙述了预定的测试活动范围、途径、资源、及进度安排的文档。它确定了测试项、被测特征、测试任务、人员安排以及与计划相关的风险
2、三要素
时间(测试周期)
资源(软硬件资源、人力资源)
范围(测试维度)
3、其他方面
策略(测试策略)
风险控制(测试过程中可能会遇到影响测试进度的意外事件)
测试计划包含的内容
1、测试目的
2、测试背景
3、文档受众
4、测试参考文档
5、测试提交文档
6、术语介绍
7、测试需求分析
8、测试策略定义
9、测试工具定义
10、测试资源定义
11、人员分工
12、里程碑
测试计划的作用
1、计划能给管理者和被管理者指明前进的方向
2、计划可以减少不确定性对组织的影响和冲击
3、计划可以减少无序和浪费
4、计划有利于管理和控制
为什么要编写测试计划
1、领导能够根据测试计划做宏观调控,进行相应资源配置等
2、测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等
3、便于其他人员了解测试人员的工作内容,进行有关配合工作
测试计划的编写时间与编写人
1、什么时间开始编写测试计划?
需求分析后,在整个测试工作过程中不断修改
2、由谁来编写测试计划?
具有丰富经验的项目测试负责人
测试计划的核心活动
1、确定测试策略
2、确定测试系统(软硬件)
3、预估工作量(资源和时间进度计划)
4、评估事件进度风险并准备风险缓解计划
5、准备并复查测试计划文档
测试计划的设计与实现

	测试策略
		先测试优先级最高的需求
		对新功能和修改功能进行测试
		运用等价划分技术和边界值分析技术减少测试工作量
		测试哪些最有可能出现问题的地方
		关注用户最常使用的功能和配置情况
		确定测试顺序
			UI测试
			表单值域测试
			数据准确性测试
			逻辑测试
			业务流程测试
			cookie测试
			易用性测试
			兼容性测试
			性能测试
			安全测试
			比较测试
			随机测试
			需要用到逆向思维测试
		确定测试方法
			需求分析阶段
				对需求文档进行静态测试,主要采用审查走查的方法验证需求的完整性、一致性、可行性
					需求评审阶段测试需要做的工作
						思考逻辑是否正确
						业务流程是否有其他可能性
						需求描述是否完整清晰
						是否存在二义性的词汇
						软件功能是否可以实现
						测试工具的搭建和准备工作
						编写测试计划书
						编制完善业务流程图
						推算软件各个模块测试所需的时间
						对模块进行人员分工和时间规划
			编码和单元测试阶段
				白盒测试方法,由程序员完成
			集成测试阶段
				灰盒测试方法,设计用例时注意等价划分和边界值
			系统测试阶段
				黑盒测试方法,测试工具,进行自动化测试,包括系统的功能和性能测试
			验收测试阶段
				动态,黑盒测试方法,由用户来进行
		如何预估工作量
			某项工作的开始时间
				可以写相对时间,如,从开发部门提交可供测试的版本开始,而非年月日。
			某项工作需要多少时间完成
				评估工作量+测试效率评估=确定测试所用时间
			评估工作量
				被测对象的数量
				业务复杂度
			测试效率的评估
				测试活动参与者的数量
				可以投入的工作时间
				参与者的技术水平和工作效率
				测试资源和支持工作是否到位
				此外某项工作需要多少时间完成可以参考过去的经验
		测试环境
			测试环境
			HA环境(准线上环境、准发布环境alpha测试)
			正式环境(线上环境beta测试)
第七节 app核心测试点
	1、测试范围
		功能测试
		性能测试
		用户测试
		安全测试
		稳定性测试
			B/S:高负载的强度下,模拟用户在极限负载场景中长时间运行网站,查看服务器是否正常运行
			C/S:在软件中随机点击按钮,加快频率测试它的稳定性和健壮性
	2、测试方法
		和B/S相同的
			表单值域测试
			业务流程测试
			业务逻辑测试
			数据准确性测试
			链接跳转测试
			cookie测试
			接口测试
			比较测试
		和B/S差异的
			兼容性测试
				UI兼容性
				分辨率测试
					手机屏幕大小
					Ipad平板
				网络测试
					3G
					4G
					5G
					wifi
				系统测试
					IOS
					安卓
					系统版本测试
				配置兼容性测试
					需要兼顾到各种配置的机型
			安全测试
				通过不同的杀毒软件来扫描自己的app
				漏洞扫描
				sql注入
				数据 的加密、解密
			性能测试
				cpu监控
				内存监控
				耗电量
				流量耗费
				响应时间
			用户体验测试
				不要放弃小白用户
				不要放弃低配机型
				用户的交互体验
				手机的自带功能
					指纹
					面部识别
					三指滑屏
					左滑、右滑
					长按
				猜你喜欢
					通过购买历史记录匹配
					通过查询历史记录匹配
					通过观看的次数和时间匹配
			健壮性测试
				异常断开
					软件使用过程中来电
					软件使用过程中来视频
				内存溢出
					多线程
					内存已满的情况
				稳定性测试
					通过monkey模拟小猴子乱点的效果
			安装卸载更新
				安装
					通过不同渠道进行安装
					安装过程中断开
				卸载
					验证软件卸载后是否有遗留数据
				更新
					跨版本更新
					更新过程中断开
					更新后的回归测试
						网站需要测试老版本的功能可否正常使用,app不用测试老版本功能
			增值业务
				推送消息
					测试推送内容的时间
					测试推送内容是否正确
					测试触发推送消息的条件
				控件测试
					日历
					天气
					地区
				广告
					测试受众人群的画像
					测试推送人群的兴趣爱好是否匹配
					测试广告推送是否精准
						搜索关键词匹配
						cookie的数据分析
			权限测试
				测试软件获取的用户权限是否有必要
				测试是否有多余的权限
	3、工具
		测试工具
			monkey
			monkeyrunner
			GT
			appium
			appscan
				网站安全扫描工具
第八节 TCP/IP协议与OSI协议
	1、网络协议
		概念:网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。
		协议的层次结构是什么?
			1、结构中的每一层都规定有明确的服务及接口标准。
			2、把物理通信线路作为最底层,它使用从最高层传送来的参数,是提供服务的基础。
			3、除了最高层外,中间的每一层都向上提供服务,同时又是下一层的用户。
			4、把用户的应用程序作为最高层。
		常用的协议:
			1、TCP/IP协议:互联网基础协议,配置最麻烦,通信效率不高
			NetBEUI协议:可以增强用户接口,是NetBIOS协议的增强版本。
			IPX/SPX协议:用于局域网联机游戏,不需要配置
	2、TCP/IP协议
		1、应用层:把所有的底层协议打包以实现功能。
		2、传输层:TCP或UDP(接口测试:发送、响应报文)传输数据包。
		3、网络层:整个TCP/IP协议栈的核心,沿不同路径发送分组
		4、网络接口层:提供上网的基础,传输比特流
	3、OSI协议
		1、应用层:最靠近用户的OSI层,为用户的应用程序提供网络服务。
		2、表示层:应用程序和网络之间的翻译官,管理数据的加密与解密和文件的编码与解码。
		3、会话层:负责在网络中的两节点之间建立、维持和终止通信。(三次握手,四次挥手)
		4、传输层:模型中最重要的一层,将数据包分割传递(1500字节),接口测试的重点
		5、网络层:模型的第三层,将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。(选择最佳路径传送数据包)
		6、数据链路层:模型第二层,控制网络层与物理层之间的通信,在不可靠的物理线路上进行数据的可靠传递。(以帧的形式传送数据包)
		7、物理i层:模型的第一层,提供上网的基础,控制传输比特流,能够设定数据传输速率并检测数据出错率。
		8、OSI模型的优点
			1、(1)、建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题。(2)、它的最大优点是将服务、接口、协议这三个概念明确地区分出来。(3)、网络七层的划分也是为了使网络的不同模块(不同层次)分担起不同的职责
			好处:
				1、减轻问题的复杂程度,一旦发生网络故障,可迅速定位故障所处层次,便于纠错。
				2、在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互相操作,各层之间则相对独立,一种高层协议可放在多种底层协议上运行。
				3、能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需要对整个网络动大手术
				4、便于研究和教学。
第九节性能测试之loadrunnner
	性能前期准备工作
		了解本次性能测试的目的
		性能指标标准
		测试机配置测试
		服务器配置测试
		服务器ip地址
		了解有几台服务器
		提前准备测试机多机联合
		编写性能测试用例
		搭建性能测试环境
	性能开展阶段
		接口性能测试
			接口压力测试
			接口负载压测
			测试流程
				拿到接口文档
				接口功能测试通过
				去理解接口测试的目的
				去制定接口指标标准
				编写测试用例
				执行接口压测(jmeter)
					添加线程组
					http请求
					参数化
					关联
					结果树
					断言
					cookie元件
					聚合报告
				分析总结
		业务性能测试
			压力测试
			负载测试
				不能有集合点
			稳定性测试
			故障转移和恢复测试
	性能执行阶段
		创建脚本
			进行脚本增强
				集合点
					并发压力测试策略:选择占总数的100%,集合点前不要设置思考时间
				事务
				关联(web_reg_save_param)
					手动关联
					自动关联
				检查点
					图片检查
						web_image_check+图标的属性值
					文本检查
						1、web_find+要检查的文本
						2、web_find+要检查的文本+左右边界的值
				参数化9种组合方式
					1、按照顺序+每次迭代
						迭代第一遍所有用户都取第一个值,迭代第二遍取第二个值依次类推
							示例:秒杀商品,投票
					2、随机+每次迭代
						每次迭代随机取值
							抽奖
					3、随机+只取一次
						第一次迭代参数取值完全随机,但是会同步出现在后续的迭代中
							示例:贴吧留言
					4、唯一+每次迭代
						每次迭代值只取一次(均分数据)
							拍卖,手机号+车牌号选号
					5、唯一+只取一次
						每一次迭代取值都不重复,在随后的迭代中会多次出现
							登录(不能重复登录)
					6、按照顺序+每次出现
					7、随机+每次出现
					8、唯一+每次出现
					9、按照顺序+只取一次
						没参数化
				用户思考时间
				其他函数
		运行负载
			性能场景设计界面
				添加测试脚本
				设置多机联合
					划分每台测试机的比重
				选择脚本执行的测试机
				全局计划
					设置初始化方式
					设置Vuser启动人数
					设置持续时间
						完成前一直运行
						设置运行时间
					设置结束Vuser方式
			性能指标分析界面
				监控指标的设计
					设置监控图形的数量
					设置指标刷新的时间
					设置监控的指标
						吞吐量
						响应时间
						每秒点击次数
						并发用户数
						报错信息
						Http响应数
						cpu内存占用
						网络延迟时间
			性能结果分析阶段
				编写性能测试分析表
				根据分析表分析性能变化趋势
				生成概要报告进行概要分析
				根据图表进行详细数据分析
				生成性能测试报告
			结果报告阶段
				编写目的
				项目背景
				测试目标
				名词解释
				参考文档
				测试环境说明
				测试策略
				人员分配
				测试方案
				测试场景及用例
				测试结果概要分析
				测试结果详细分析
				测试结论
第十节 接口测试
	基础介绍
		接口分类
			程序内部接口
				上层服务与下层服务接口
				同级接口
			系统外部接口
				软件接口
					服务器接口
						HTTP(s)协议接口(https加密协议)
						Webservice接口
							远程调用技术
							特征:1. 无界面
  1. soup协议,底层依然是HTTP协议
  2. xml
    Dubbo接口:阿里巴巴,中间件,多用于分布式框架
    外部接口
    第三方接口,如支付宝支付接口
    天气预报…
    硬件接口
    接口测试的目的?
    功能:验证接口的数据正确性
    性能:验证接口稳定性
    安全:安全性考虑
    接口测试的原理?
    借助工具模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。
    接口测试的重点?
    功能:检查数据的交换,传递和控制管理过程
    性能:处理的次数
    接口测试的优点?
    1、为高复杂性的平台带来高效的缺陷监测和质量监督能力
    2、平台越复杂,系统越庞大,接口测试的效果越明显
    3、提高测试效率,提升用户体验,降低研发成本
    4、可以尽早的介入测试,减小bug修复成本
    5、可以实现自动化持续集成,减少回归测试人力成本与时间
    6、提升软件的安全性和稳定性
    接口请求方式?
    get
    post
    put(数据的存储)
    delete(删除资源)
    其他…
    1. get获取资源,post表单提交请求资源;2. post相对来说比get安全; 3. get传输数据有长度限制,post支持数据量较大的数据传输
    接口状态码
    1XX:临时响应
    100:(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
    101:(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
    2XX:响应成功
    200:(成功)  服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
    201:(已创建)  请求成功并且服务器创建了新的资源。
    202:(已接受)  服务器已接受请求,但尚未处理。
    203:(非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。
    204:(无内容)  服务器成功处理了请求,但没有返回任何内容。
    205:(重置内容) 服务器成功处理了请求,但没有返回任何内容。
    206:(部分内容)  服务器成功处理了部分 GET 请求。
    3XX:重定向
    300:(多种选择)  针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
    301:(永久移动)  请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
    302:(临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    303:(查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
    304:(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
    305:(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
    307:(临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    4XX:请求错误
    400:(错误请求) 服务器不理解请求的语法。
    401:(未授权) 请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。
    403:(禁止) 服务器拒绝请求。
    404:(未找到) 服务器找不到请求的网页。
    405:(方法禁用) 禁用请求中指定的方法。
    406:(不接受) 无法使用请求的内容特性响应请求的网页。
    407:(需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
    408:(请求超时)  服务器等候请求时发生超时。
    409:(冲突)  服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。
    410:(已删除)  如果请求的资源已永久删除,服务器就会返回此响应。
    411:(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
    412:(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
    413:(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
    414:(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
    415:(不支持的媒体类型) 请求的格式不受请求页面的支持。
    416:(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
    417:(未满足期望值) 服务器未满足”期望”请求标头字段的要求。
    5XX:服务器错误
    500:(服务器内部错误)  服务器遇到错误,无法完成请求。
    501:(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
    502:(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
    503:(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
    504:(网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。
    505:(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
    接口组成
    接口说明
    调用的url
    请求方法(get\post)
    请求参数、参数类型、请求参数说明
    请求头header(部分必须)
    返回参数说明
    接口测试的工具?
    loadrunner:一款商业性能测试工具,用来做接口测试,很好很强大(非开源),win7 ,火狐24,ie8、ie9
    jmeter:一款开源的性能测试工具,操作简单,方便(JMeter)
    poster:火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手
    postman:谷歌浏览器的扩展工具,谷歌商店中选中安装,界面同poster差别不大,界面简洁
    soapui:开源测试工具,通过soap/http来检查、调用、实现WebService的功能/负载/符合性测试;
    swagger:一款接口管理工具,既可以管理接口文档,又可以当做接口测试工具向服务器发送请求。
    测试范围
    业务测试
    正常场景
    异常场景
    逻辑接口测试
    正常逻辑
    逆向逻辑
    参数测试
    等价类测试
    有效等价类
    无效等价类
    边界值分析
    业务规则边界值
    输入参数边界值
    其他
    必填项
    特殊符号,例如:“<,>,/,!,@,#,$,%等…”
    空格
    特殊值,例如:超出日期范围,结束时间大于开始时间等…
    sql注入
    性能测试
    响应时间
    吞吐量
    最大并发数
    服务器硬件资源
    CPU
    memory
    IO输入输出
    network
    安全性测试
    SQL注入
    敏感信息加密
    接口自动化测试
    接口测试之postman
    接口测试之jmeter
    基本介绍
    测试计划:配置局部变量
    线程组:配置用户数,运行时间和循环次数
    八大元件
    1、配置元件:用于数据、组件相关的配置
    1、http请求默认值:配置重复参数
    2、httpcookie管理器:cookie机制保存登录状态
    3、用户定义的变量:用于配置局部变量参数
    4、csv数据文件设置:使用外部文件进行变量参数化(txt、csv)
    5、jdbc connection configuration用于配置连接数据库的参数
    6、计数器:用于一个盒子对应多个变量参数,通过设置下标的方式取对应值
    7、http信息头管理器:用于webservice接口请求头参数配置
    2、前置处理器:预处理工作
    3、定时器:开工时间
    1、固定定时器:模拟思考时间
    2、同步定时器:绝对并发的用户运行参数配置
    3、统一随机定时器:随机定时时间
    4、取样器:正式动工
    1、http请求:配置每个步骤脚本参数
    2、调试取样器:用于调试脚本的运行结果
    3、jdbc request:关联jdbc connection 共同配置连接数据库的参数
    4、ftp请求:用于测试ftp服务器参数配置
    5、后置处理器:收尾工作
    1、josn提取器
    2、正则表达式提取器
    3、边界提取器:提取首页动态的formhash值,用于注册
    6、断言:预期结果与实际结果作对比
    1、响应断言
    2、josn断言
    7、监听器:接收性能指标
    1、查看结果树:查看脚本结果是否成功
    2、汇总报告
    3、聚合报告
    8、逻辑控制器:不参与执行顺序,用于控制其他元件
    1、事物控制器:用于控制事物的完整性
    关联
    参数化
    1、通过局部与全局变量配置
    1、通过用户定义的变量设置局部变量
    2、通过测试计划设置全局变量
    3、当脚本同时设置局部变量和全局变量时,优先使用局部变量(就近原则)
    2、通过外部的csv配置参数
    3、通过数据库连接
    集合点
    取得需求文档
    确定测试测略
    确定测试系统
    预估工作量
    复查测试文档
    测试设计和实现
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值