利哥面试混迹于软件测试行业十几年了,在面试经验方面也是比较有经验,那么也整理过很多面试题,今天暴露给大家看看,学习学习!
测试面试题目:
1、 软件的定义:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
2、 软件测试的定义:通过手工 或工具找出软件中存在的缺陷,保证软件的质量。
3、 黑盒测试:黑盒测试就是我们把要测试的软件当做一个没有打开的盒子,我们不需要了解盒子里边的内部构造以及逻辑,我们只需要依据软件的需求规格说明书,检查它的功能是否符合它的功能说明。
4、 白盒测试:白盒测试就是我们把要测试的软件当做一个打开的盒子,我们可以通过看这里边的内部逻辑和结构特性,选择或设计测试用例,通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。
5、 如何制定测试计划:
a) 认真做好测试资料的搜集整理工作;
b) 明确测试的目标,增强测试计划的实用性;
c) 坚持“5W”规则,明确内容与过程;
d) 采用评审和更新机制,保证测试计划满足实际需求
6、 黑、白(动态静态)盒测试区别:黑盒测试与白盒测试最大的区别应该就是测试对象不一样,白盒测试主要针对的是程序代码逻辑,黑盒测试主要针对的是程序所展现给用户的功能,简单的说就是前者测试后台程序后者测试前台展示功能。
7、 软件开发流程:计划 需求分析 设计 编码 测试 运行 维护 升级 废弃。
8、 软件测试流程:需求分析 编写测试方案 测试用例 执行测试用例 生成测试报告。
9、 测试阶段分为:单元测试、集成测试、系统测试、验收测试。
10、 单元测试的策略:逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析。
11、 单元测试包括:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试。
12、 冒烟测试:对软件基本功能进行确认验证的手段,并非对软件版本包的深入测试。冒烟测试也是针+ 对软件版本包进行详细测试之前的预测试,执行冒烟测试的主要目的是快速验证软件基本功能是否有缺陷。如果冒烟测试的测试例不能通过,则不必做进一步的测试。
13、 集成测试:(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;(2)一个模块的功能是否会对另一个模块的功能产生不利的影响;(3)各个子功能组合起来,能否达到预期要求的父功能;(4)全局数据结构是否有问题;(5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
14、 集成测试和系统测试区别:(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书;(2)集成测试是系统模块的测试,系统测试是对整个系统的测 试,包括相关的软硬件平台、网络以及相关外设的测试。
15、 回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
16、 为什么要做回归测试:1,避免在回归测试中应各种操作误差所引起的测试结果异常。2.可以保持和原始测试一直性。3.可以提高测试效率。4.测试经理可以更好的掌握测试存在的问题
17、 Bug的生命周期:发现 提交 确认 分配 修改 验证 关闭。
18、 Bug的严重等级:①,一级 主流程无法跑通,系统无法运行、崩溃或者严重资源不足、应用无法启动或者异常退出,主要问题缺失、造成人身、财产安全问题。②,二级 影响系统功能或者操作、主要功能存在严重缺陷,次要功能丢失 但不会影响到系统稳定性 比如 计算错误。③,三级 界面、功能性缺陷、次要模块存在缺陷但不影响程序运行 比如 大数据下不容易响应。④,四级 建议性
19、 Bug的严重等级和优先级的区别:一般来说严重等级越高优先级越高,但是严重性和优先级并不总是一一对应。有时候严重性高的软件缺陷,优先级不一定高,甚至不需要处理,而一些严重性低的缺陷却需要及时处理,具有较高的优先级。例如公司名称写错,单词拼写错误
20、 bug单的内容:Bug单的内容:首先是bug单的标题,然后有一个模块路径(bug是在什么地方出现的),接着有一个如何发现(是怎么发现这个bug的),然后是指派人员(指派给相应的开发人员去解决),bug的严重等级,bug的优先级,前置条件(测试的前置条件),测试步骤(重现bug的测试步骤),实际结果(执行测试用例时的实际输出结果)附件(如果文字表达不清楚,过于冗长,可以上传视频或者截图等附件)。
21、 偶发的bug:判断是不是bug 提交到管理工具 ,严重问题 场景 步骤 反馈开发人员代码走查 反馈经理 尽量模拟
22、 禅道和bugfree的区别:一个公司的 bugfree免费,禅道比bugfree更强大 bugfree只是一个bug管理工具 禅道是项目管理工具 测试人员可以发布文档 测试用例 测试bug单。
23、 如何提高质量的bug记录?: 首先是提交的bug可重现,尽可能找到重现规律;然后是Bug描述简明准确,对于问题的描述,应该尽可能简明、准确;然后是一个bug记录只描述一条bug;最后是Bug的唯一性,在提交Bug report之前,要先确认这个Bug是否已经被其它人发现并报告。
24、 难以复现的BUG怎么处理:1、首先出现难以复现的bug一定要截图提交bug 2、首先评估bug的重要程度以及对整个项目的影响,如果影响小,就记录下来,继续跟踪3、如果对项目影响较大,范围较广,则要及时解决。尽量复现当时bug出现的场景:环境、数据等,跟组内其他的测试同事交流下,再多尝试几次(20次到30次)如果还是不能复现,就把这个问题反馈给开发,让开发进行代码走查,看能不能找到原因。如果开发这也不能发现,就把问题反馈给项目经理,请项目经理组织更多开发测试同事参与解决这个问题
25、 测试计划的包含内容:产品概述、测试策略、测试方法、测试内容、测试配置、测试周期、测试资源、风险分析,输出文档。
26、 编写好测试用例的依据:需求规格说明书,项目原型图。
27、 测试用例包括:编号 功能点 功能模块 测试步骤 输入数据 预期结果 实际结果。
28、 测试用例的流程:需求分析 得出测试需求;设计测试方案,评审测试方案;方案评审通过后,设计测试用例,再对测试用例进行评审。
29、 测试用例编写要求:
(1)测试用例本身的描述是否清晰,是否存在二义性;
(2)是否考虑到测试用例的执行效率.往往测试用例中步骤不断重复执行,验证点却不同,而且测试设计的冗余性,都造成了效率的低下;
(3)是否针对需求变更进行跟着,覆盖了所有的软件需求;
(4)是否尽可能多的覆盖了异常流程和异常测试点。
30、 如何保证测试用例的质量:测试用例是软件测试的准则,但它并不是编制完成后就直接成为准则。由于用例开发人员的设计经验和对需求理解的深度各不相同,所以用例的质量难免会有不同程度的差异。所以我们要进行用例的评审,评审时 责任人覆盖到了全部的测试点之外,针对关键功能或业务流程提出疑问和建议,以提高测试点的覆盖面和测试用例的质量,从而提升任务的完成质量。
31、 测试用例评审要求:
1.用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。
2.优先极安排是否合理。
3.是否覆盖测试需求上的所有功能点。
-
用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。
-
是否已经删除了冗余的用例。
6.是否包含充分的负面测试用例。
-
是否从用户层面来设计用户使用场景和使用流程的测试用例。
-
是否简洁,复用性强。
32、 (黑盒测试的方法)编写测试用例的方法:等价类划分法 判定表(条件桩 条件项 动作桩 动作项) 边界值 因果图 错误推断法,场景法、正交实验法
33、 测试报告包含:测试背景 、测试范围、测试环境、测试方法、测试结果(用例执行、bug修复、bug遗留、功能覆盖率)、质量与风险评估。
34、 项目验收的标准?
a) 测试用例不通过的比例<3%;
b) 不存在错误等级为1,2,3的错误;
c) 错误等级为4的错误数量≤20;
d) 所有提交的错误已得到更正;
e) 不影响主功能的样式问题可以留到下次上线的时候更改。
f) 软件质量满足用户要求
35、 α(Alpha)、β(beta)测试区别:①、Alpha testing (α测试),是由用户,或者测试人员在开发/测试环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试;开发人员在现场,可以及时解决测试过程中发现的bug。(内侧)②、Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场。发现问题后通过反馈,搜集到项目组(公测)
36、 软件开发的模型:v模型、H模型(只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以(或者说需要)进行了。)、W模型、螺旋模型(周期性的方法来进行系统开发,导致很多中间版本)、X模型(分片段编码,最后集成测试,对测试人员的要求比较高)、瀑布模型(自上而下的、线性的、末期才能见到开发成果,从而增加了开发的风险)快速原型模型。
37、 QC和QA的区别:
1、定义区别:①,QC:Quality Control,品质控制,产品的质量检验,发现质量问题后的分析、改善和不合格品控相关人员的总称。②,QA:Quality Assurance,品质保证,通过建立和维持质量管理体系来确保产品质量没有问题。
2、目的区别:①,QC是为使产品满足质量要求所采取的作业技术和活动,它包括检验、纠正和反馈。②,QA是为满足顾客要求,给顾客提供信任,即使顾客确信提供的产品能满足他的要求。
38、 APP测试与web测试的区别:
1.从技术上来说: WEB测试和移动端测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、UI测试等测试类型。 他们的主要区别在于具体测试的细节和方法。 web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,是有客户端的。
2.从系统架构来看的话:web测试只要更新了服务器端,客户端就会同步更新;而如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。
3.客户端性能方面:web页面可能只会关注响应时间, app则还需要关心流量、电量、CPU、GPU、Memory这些了。
4.兼容方面: web是基于浏览器的,所以更倾向于浏览器(IE、chrome、Firefox)和电脑硬件,电脑 系统的方向的兼容;
app的测试则必须依赖手机或者pad,不仅要看分辨率,屏幕尺寸,重要看设备系统。
5.app的专项测试:
1)多网测试:无线网络、2G、3G、4G等,断网、网速较差及网络之间的切换时页面的显示等,此外,在非wifi下,还需要注意网络使用量问题
2)中断测试:如电话、短信、通知、断电等,软件需要处理这些特殊情况
3)安装测试:除了常规的安装、更新、卸载时的用户数据处理外还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件、增量包更新、断点续传;升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除
4)界面测试:如不同尺寸规格的图文在不同屏幕的显示;对于触摸屏手机,测试时还要注意手势,横竖屏切换,多点触控等测试
5)弱网测试:需要测试弱网所造成的用户体验,可从功能,性能,异常处理,场景特性等几个维度来考虑。
功能:在弱网下,做功能测试,不仅是次性能测试,也是一种可靠性测试
性能:从app的热启动、页面切换、前后台切换测试app的响应时间。尤其是H5的页面需要测试首屏时间,是否有302跳转,页面大小等,否则会出现各种白屏、闪屏、等。另外可通过网络请求API的整体时间,response以及body大小来推断是服务器处理的慢,还是需要治理传输包;如果时间很少,body又小,还很慢的话,这下就是客户端程序的问题。
强网络形态场景:有些场景就必须是开着wifi才能做的;比如微信的升级就会监听用户是否插着电,连着wifi,一旦监听到了,方可通知升级
容错机制:主要是考虑弱网情况下带来的不稳定,等待超时 ANR了,或者直接异常闪退了。这些的处理,一定要做的优雅,所以异常信息的文案一定要做的漂亮
重连机制:涉及两块,一块是客户端是否会重发请求,一块是服务端是否接受重连。配合超时机制,多久没有得到反馈才会发起重连,失败几次会不允许重连
无网状态测试:首先无网下页面呈现;其次数据完整性和session一致性;另外,还需要关注的是,无网状态下会不会还不断的请求网络,不断的做网络相关的操作。从无网状态恢复到有网络,会不会有请求堆积?
39、 APP与WEB的兼容性区别:在WEB端是兼容浏览器,电脑屏幕大小,屏幕分辨率,不同操作系统等 ;App端兼容的不同手机操作系统,相同系统不同系统版本,不同手机品牌,不同手机屏幕大小,不同手机分辨率等。
40、 测试APP的时候安卓和iOS的区别:兼容性:安卓种类比较多 苹果种类较少;新版ios系统资源库不能完全兼容低版本,底版ios调用新版系统会导致闪退,后台运行:苹果没有后台 重新调用是否能唤醒,下载:安卓较多 苹果app store iTunes testflight,垃圾处理:苹果可以自行处理垃圾
41、 兼容性测试:兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
42、 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
43、 兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。
44、 OSI七层模型:物理层,数据链接层,网络层,传输层,会话层,表示层,应用层。
45、 http是什么协议:超文本传输协议服务器端和客户端之间文件传输的沟通方式,在OSI模型中属于应用层。
46、 TPS与HPS的区别:TPS系统每秒钟处理完成的事物数量,HPS每秒钟点击次数的区别:TPS系统每秒钟处理完成的事物数量,HPS每秒钟点击次数。
47、 http协议HTTPS协议:HTTP是一个简单的请求-响应协议 HTTPS超文本传输安全协议①https协议需要CA证书,一般免费的证书很少,需要交费;②http是超文本传输协议,信息是明文传输的;https是具有安全性的ssl加密传输协议 ③http和https使用的是两种完全不同的链接方式,所使用的端口号也是不一样。http默认端口号是80,https默认端口号是443; ④http连接是一个无状态的链接; ⑤https是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,安全性要比http高。
48、 get post请求区别:请求形式不同:get请求的数据一般会附在url之后,get请求URL与参数是以“?”分隔;参数与参数之间是以“&”符号分隔;post请求提交数据会把数据位置放在http包的包体中(body) 提交数据大小不同:get方式提交数据最多支持1024个字节,1KB数据;post提交数据大小理论上不做限制。 安全性区别(post请求的安全性要比get请求要高)。
49、 post的传参方式:application/x-www-form-urlencoded:传参方法:key1=val1&key2=val2 multipart/form-data:一般用来上传文件,也能用表单的形式提交数据。 application/json:传参形式:{“key1”:“val1”,“key2”:“val2”}
50、 tcp udp:TCP链接比较可靠,不会丢失数据,能够进行较长的传输,适合大数据量传输 经过三次握手 qq在线传输。UDP链接不可靠,容易丢失数据,没有校验,速度快 qq离线传输。
51、 性能测试:评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。
52、 产品和项目的区别:产品管理是一个生命周期比较长的过程,项目管理是临时性完成目标的过程,一个产品可能由多个项目构成。
53、 后端开发语言:java,python,
54、 为什么要查看数据库:数据庞大比如金额 更改之后比较好测试,方便查看数据是否准确。
55、 为什么要抓log:发现异常数据。
56、 APP如何快速确定问题:通过抓包工具抓包
57、 APP测试如何抓包:使用fiddle抓包工具,(1)配置Fiddler,使手机和fiddler所在电脑在同一个网段下。(2)设置手机无线网络添加手动代理,添加IP地址及端口号,如果抓取的数据是https协议时需要在手机端安装Fiddler证书。
58、 ios抓取日志:1、下载安装itools工具:http://www.mydown.com/soft/59/11963059.shtml ,2、插上ios手机之后要先安装驱动,驱动安装成功才能连上ios手机 ,3、连接好手机就可以抓取日志了。
59、 如何区分后台和前端的BUG:通过抓包查看请求与响应是否正确来判断。如果前端已经把数据发送给了后端,后端接到请求,而后端没有返回数据请求,则是后端。如果前端在用户输入数据后,发送的请求没有带数据,则是前端的问题,或者后台已经传回了数据,但在前端显示不出来,这是前端问。
60、 硬件问题还是软件问题:1检查系统是否有中毒的表现和特征,例如有不知名的文件一直删不掉。2检查软件/硬件的配置是否符合软件的推荐标准,有的应用程序有它的最起码的运行条件,比如内存大小,显卡性能等等。3.确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务,就是如果当前有其他占用资源比较多的工作在进行,我们的程序运行当然就慢。4.如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的,比如查看配置文件是否配有问题。5.在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。
61、 Ram和rom区别:1、概念:RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器。2、对比:手机中的RAM和ROM分别对应电脑的内存和硬盘,内存负责程序的运行以及数据交换,有了它,电脑中的软件才能运行,并有了进程;而硬盘就是一块存储空间,您可以存储各种各样的文件,包括视频、照片、音乐、软件等。
62、 什么是性能测试:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行
63、 什么时候做性能测试:一般在系统功能稳定没有大的缺陷之后开始执行。但前期准备工作可以从系统需求分析时就开始:性能目标制定、场景获取、环境申请等
64、 负载测试:通过增加系统的负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量
65、 压力测试:通过逐渐增加系统负载,测试系统性能的变化,最终确定在什么负载条件下系统处于失效的状态,并以此获得系统所能够提供最大的服务级别
66、 大数据量测试:对特定的存储、传输、统计、查询等业务的测试
67、 疲劳强度测试:通常是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析性能指标,资源监控指标来确定系统处理最大工作量的性能过程
68、 并发:并发操作是指在同一时间可能有多个用户对同一数据进行读写操作
69、 集合点:集合点主要是用来聚集虚拟用户的,当虚拟用户到达集合点后会停止接下来要进行的操作,直到满足集合点的触发条件,此时在集合点上的用户同时开始操作相同的动作,也就形成了所谓的“并发”;简而言之就是可以设置并发数
70、 事务:用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个操作过程的响应时间。(事务代表的是单个功能,或者业务流程,性能测试的指标之一)
71、 Python selenium的环境布置:1.下载python并配置环境变量2.下载pycharm开发工具,并**3.添加浏览器插件chromedriver.exe(谷歌浏览器插件),geckodriver.exe(火狐浏览器插件)4.使用cmd命令框输入 pip install selenium 下载selenium包5.pycharm中引入selenium包from selenium import webdriver 6.打开浏览器 driver = webdriver.Firefox()打开火狐浏览器driver = webdriver.Chrome()打开谷歌浏览器7.打开项目地址:driver.get(“https://www.baidu.com”)打开百度页面8.使用vebdriven进行元素定位
72、 静态测试与动态测试的区别:静态测试:通过静态的检查程序代码、界面、文档中可能存在的错误的过程。|-测试代码编写的规范性 |-测试界面 |-测试相关需求说明和用户手册是否符合实际要求,动态测试:通过路径和分支测试。测试用例主要根据以下六种覆盖测试方法设计,|-语句覆盖 |-判定覆盖 |-条件覆盖 |-判定/条件覆盖 |-组合覆盖 |-路径覆盖
73、 项目介绍:
1.介绍项目(是什么,做什么用,有哪些功能,有什么端):
2.项目开发周期:
3.项目测试时间多长:
4.项目几个人来测:
5.测试的几个人工作如何安排的:
6.项目开发团队的人数:
7.项目团队组织架构,各自的角色及职责:
8.公司多少人,人员配置:
9.是否做过web服务端的测试:
10.服务器端测试要测试那些:
11.管理后台有哪些内容及功能:
12.测试用例写在哪:excel bug管理工具中 word也可以
13.公司项目用户量是多少:
14.支持并发是多少:
15.软硬件配置的环境是什么:
16.公司服务器配置是什么,有几台:
17.公司开发项目使用了什么技术:
18.有没有部署过测试环境:
19.工作过程中是否遇到一些典型的BUG,具体描述一下:
20.测试人员与开发人员针对是否为BUG有歧义,怎么解决:
21.版本管理如何做:
22.测试用例编号规则:
23.除测试时期外其他人做什么:
24.测试过程中时间不够用怎么解决:
25实物举例测试:
- 如何编写提交给客户的测试报告
随着测试工作越来越受重视,开发团队向客户提供测试文档是不可避免的事情。很多人会问:“我们可以把工作中的测试报告提供给客户吗?”答案是否定的。因为提供内部测试报告,可能会让客户失去信心,甚至否定项目。
测试报告一般分为内部测试报告和外部测试报告。内部报告是我们在测试工作中的项目文档,反映了测试工作的实施情况,这里不过多讨论,读者可以参考相关教材。这里主要讨论一下外部测试报告的写法,一般外部测试报告要满足下面几个要求:
-根据内部测试报告进行编写,一般可以摘录;
-不可以向客户报告严重缺陷,即使是已经修改的缺陷,开发中的缺陷也没有必要让客户知道;
-报告上可以列出一些缺陷,但必须是中级的缺陷,而且这些缺陷必须是修复的;
-报告上面的内容尽量要真实可靠;
-整个测试报告要仔细审阅,力争不给项目带来负面作用,尤其是性能测试报告。
总之,外部测试报告要小心谨慎的编写。
jmeter
- 接口测试的步骤
答:1.添加线程组 2.添加http请求 3.在http请求添加URL、路径、请求方式和参数 4.添加查看结果树 5.调用接口,查看返回值
-
如何做接口压力测试
答:打开jmeter–>添加线程组/设置测试场景,接口测试一般设1个线程组,根据测试数据个数设置循环次数–>添加http请求(线程组右键添加取样器和http请求)在http请求页面填写被测试系统域名和端口、协议、类型,选择路径和内容格式编码,然后进行用户添加–>添加结果树监控查看数据分析 -
如何做有关联关系的接口测试
答:1.新建http请求获取返回值
2.右击http请求,添加–>后置处理器–>正则表达式
引用名称:接口返回值 正则表达式:‘result’:“.+?” 模板:
3.新建http请求引用变量 -
如何录制APP脚本
答:1.添加线程组
2.添加http代理服务器
3.手机连接本机热点
4.在手机WLAN设置手动代理(与本机保持同一网段)
5.启动jmeter、http代理
6.手机操作App
7.录制完成后停止http代理
-
如何录制http协议脚本
答:1.打开jmeter建立线程组–>添加HTTP请求
2.在测试计划中–>右键添加非测试元件–>HTTP代理服务器
3.设置浏览器–>浏览器属性–>连接–>局域网设置、设置本机ip/端口/与jmeter设置一致
4.点击jmeter启动按钮、打开浏览器录制接口,jmeter将自动记录 -
性能测试的流程
答:性能测试需求分析–>测试用例设计–>新增线程数/jmeter元组/监听器–>添加结果树运行 -
如何添加事务、断言、集合点、定时器
答:集合点:集合点是在脚本的某处设置一个标记,当有虚拟用户运行到这个标记处时,停下等待,直到所有的用户都达到这个标记处时,再一同进行下面的步骤。
响应断言:http请求右键–>添加–>断言–>断言响应, 要测试的响应字段(断言类型),要测试的模式,这里填写断言内容,添加断言完成需要添加结果、判断断言是否成功
事务:添加线程组–>添加/逻辑/事务控制器–>添加http请求–>运行整个程序便可以看到事务运行的结果 -
参数化的方式
答:1.用户自定义函数
2.CSV文件获取参数
3.函数助手获取参数值 -
如何监控服务器资源
答:1.安装插件文件至jmeter/lib/ext目录下
2.打开jmeter选择监听器–>[email protected] -pertmon metrics collector
3.启动文件夹中startAgent.bat文件服务
4.在[email protected] -pertmon metrics collector中添加本机ip,选择监控资源如、CPU内存/输入 -
如何生成测试报告
答:1.准备.jmx格式文件
2.cmd输入命令:生成jtl文件/jmeter -n -t 文件路径(jmx文档)-l 文件路径(重命名.jtl)
生成图形报告:jmeter -g 文件路径(.jtl格式) -e -o 文件路径/report
postman知识点 -
如何做接口测试
答:1.打开postman–>创建集合(create collections)编辑集合名及介绍、点击create创建
2.点击集合添加请求(add requests)–>保存至项目集合
3.在请求中添加接口地址、请求方式(GET/POST)和URL及路径和参数–>点击send请求
4.对请求返回值(json格式)进行分析数据参数化进行测试 -
参数化过程
答:1.使用CSV文件获取参数值(注意:第一行是引用参数的名称)
2.编写请求,应用变量参数,设置断言,引用变量参数(把请求文件runner一下,点击请求右侧“△”->run,把CSV文件在runner里配置好执行便可以依次去CSV文件里的变量调用) -
如何添加断言
答: nse body进行字符设置替换响应信息,保存一下点击send请求发送 -
全局变量和环境变量的区别
答:环境变量可以有多组,单全局变量只有一组,作用于全部用例。环境变量的优先级高于全局 变量,如果环境变量和全局变量都设置了baseurl,在选择环境变量的前提下,会使用环境 变量,全局变量此时会失效。数据变量>环境变量>全局变量 -
如何做关联关系的接口测试
答:1.首先找两个要测的接口Collection请求设置好
2.设置postman的环境变量
3.在tests中设置变量书写代码:var date=json.parse(responseBody)//设置环境变量token,供后面接口引用。Pm.environment.set(“token”,date,token)
4.修改第二次接口入参值格式{{token}}设置完成后,选择第一个请求send,此时token就显示在环境变量中了,第二个接口便可以使用 -
集合测试的作用
答:维护接口用例
loadrunner知识点
三大组件
答:① 创建/编辑脚本 ->脚本生成器; Virtual User Generator
② 运行负载测试 ->场景设计(控制台); Controller
③ 分析测试结果 ->测试数据分析(结果分析器);Analysis
- 工作详细流程
答:创建(录制)脚本(选择协议、浏览器、存储路径)–>回放脚本–>优化脚本(添加事务、集合点、参数化)–>设置场景(虚拟用户数、场景设计布置)–>分析场景测试结果(生成测试报告)
什么是事务、集合(并发)、检查点
答:事物:通俗讲,把一个或多个请求圈起来放在一起,统计这一个或多个请求的时间。
事务的作用:事务在开始点时就会开始计时,直到运行到该事务的结束点,计时结束。事务就是一个计时标识,在运行过程中一旦发现事务的开始标识,就开始计时,一旦发现事务的结束标识,则计时结束,这个过程中得到的时间即为一个事务时间。通常事务时间所反映的是一个操作过程的响应时间。
集合点:集合点是在脚本的某处设置一个标记,当有虚拟用户运行到这个标记处时,停下等待,直到所有的用户都达到这个标记处时,再一同进行下面的步骤。
检查点:检查点的实质是从请求的响应里判断有没有返回某个字符串,从而判断请求有没有成功
-
参数化的方法及步骤
答:一、1.Ctrl+L进入参数化设置界面
2.编辑变量参数,点击Edit with Notepod,弹出记事框,保存后参数设置,也可以在界面直接编辑,添加行列或删除行列。
3.参数设置后注意参数对应的名称。
二、直接在脚本当中导入之前编辑好的数据(在file输入框选择已经编辑好的数据文件,点击打开文件.dat格式的数据就可以自动导入) -
服务水平协议的作用
答:服务水平协议简称 SLA :是为负载测试而定义的具体目标。为达到性能指标的一个或多个限定服务组件的测量组合
自动化测试
什么是自动化测试?
自动化测试是一种使用自动化工具编写和执行测试人员测试脚本和案例的技术。
自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全取消手动测试。
什么是测试自动化,什么是自动化测试?
什么是测试自动化:
这是一种让测试过程脱离人工的一次变革。对于控制成本,控制质量,回溯质量和减少测试周期都有积极影响的一种研发过程。
什么是自动化测试:
通过将测试执行部分的部分或者全部交由机器执行的一种测试,叫做自动化测试。这种测试不需要人的实时参与。同时这种测试在小规模应用时会比手动测试昂贵许多。
自动化测试可以看作测试自动化的一部分。
不同的工程师,工作不同:
一个自动化工程师,会比较专注于测试工具的研发。最主要的是这个工程师会从成本的角度去考虑问题。这一点比较像PM。他所做的一切是为了减少自己或者团队的工作量,尽可能的将重复的,有规律可循的工作代码化,自动化。
一个自动化测试工程师,会比较专注于测试代码的开发,以及测试结果的分析。对于被测设备本身非常感兴趣。他们比较倾向于一种完美主义者,追求的是高质量而经常忽略成本。这一点更像开发人员。
什么时候自动化测试?
在以下情况下首选自动化
重复性任务
烟雾和理智测试
使用多个数据集进行测试
回归测试用例
项目比较稳定,业务流程,或者主要功能变更较小 项目周期长,频繁的回归测试
通常,决定基于ROI(投资回报率)
你什么时候不自动化测试?
人们不应该在以下情况下自动化
当受测试的应用程序频繁更改时
一次测试案例
临时 - 随机测试
自动化过程涉及哪些步骤?
在自动化过程中,涉及的步骤是
选择测试工具
定义自动化范围
规划,设计和开发
测试执行
维护
规划自动化阶段时涉及的要点是什么?
在自动化的规划阶段,必须考虑的事项是
选择“正确”的自动化工具
选择自动化框架
范围内和自动范围外的项目列表
测试环境设置
为测试脚本开发和执行准备项目时间表的授予图表。
确定测试可交付成果
软件自动化测试中使用的框架有哪些类型?
在软件自动化测试中使用了四种类型的框架
数据驱动的自动化框架
关键字驱动的自动化框架
模块化自动化框架
混合自动化框架
哪些是最受欢迎的自动化测试工具?
最受欢迎的自动化测试测试工具是
QTP(HP UFT) robotframework appium Selenium
你觉得自动化测试最大的缺陷是什么?
-
一旦项目发生变化,测试用例就需要改进,工作量大。
-
验证的范围有限,操作更加复杂,比如说简单的一个验证验证码,如果是人工识别很快就可以输入,但是自动化测试中会增添很多困难。那么这个时候速度也不如人工。
-
不稳定
-
可靠性不强
-
成本与收益比低
UI自动化 Python +Selenium 环境部署方法
1.下载并安装python,配置python环境变量
2.下载selenium pip install selenium
3.下载并安装pycharm 并** 新建一个工程引入selenium
4.添加浏览器插件,谷歌浏览器 添加chromedriver.exe 火狐浏览器添加geckodriver.exe
5.引用selenium的webdriver方法 from selenium import webdriver
6.启动浏览器 webdriver.Firefox() 启动火狐浏览器 webdriver.Chrome() 启动谷歌浏览器
7.使用get 方法打开项目地址driver.get(‘https://www.baidu.com’)
8.进行元素定位
Selenium 元素定位的基本方法都有哪些?
driver.find_element_by_id("")
driver.find_element_by_name(")
driver.find_element_by_class_name("")
driver.find_element_by_tag_name("")
driver.find_element_by_link_text("")
driver.find_element_by_partial_link_text("").click()
driver.find_element_by_xpath("").send_keys("")
driver.find_element_by_css_selector
.click() #点击
.send_keys("") #输入数据
什么是持续集成?
答:持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程。集成过程中可能会爆发大量的问题,因此集成过程需要尽可能小而多,实际上持续集成讲的是不断的去做软件的集成工作。持续集成,最简单的形式是包括一个监控版本控制(SVN等等)变化的工具。当变化被发觉时,这个工具可以自动的编译并测试你的应用。
id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?
答:css 、xpath 几乎所有的元素都可以定位到
自动化测试用例从哪里来?
答:手工用例中抽取出来,可以参考自动化用例的执行策略
你觉得自动化测试最大的缺陷是什么?
答:不稳定、可靠性、不易维护、成本与收益不成正比
Linux基本命令
说出10个linux常用的指令
ls 查看目录中的文件
cd /home 进入 ‘/ home’ 目录;cd … 返回上一级目录;cd …/… 返回上两级目录
mkdir dir1 创建一个叫做 ‘dir1’ 的目录
rmdir dir1 删除一个叫做 ‘dir1’ 的目录 (只能删除空目录)
rm -f file1 删除一个叫做 ‘file1’ 的文件’,-f 参数,忽略不存在的文件,从不给出提示。
rm -rf /mulu 目录下面文件以及子目录下文件
cp /test1/file1 /test3/file2 如将/test1目录下的file1复制到/test3目录,并将文件名改为file2
mv /test1/file1 /test3/file2 如将/test1目录下的file1移动到/test3 目录,并将文件名改为file2
mv * …/ Linux当前目录所有文件移动到上一级目录
ps -ef|grep xxx 显示进程pid
kill 使用kill命令来终结进程。先使用ps命令找到进程id,使用kill -9命令,终止进程。
tar –xvf file.tar 解压 tar包
unzip file.zip 解压zip
unrar e file.rar 解压rar
free -m 查看服务器内存使用情况
Cat 文件名 查看文件内容
ps查看进程
2.如何查看所有java进程
grep是搜索关键字
ps -ef | grep java
-aux 显示所有状态
ps -aux | grep java
kill 杀掉进程
3.如何杀掉某个服务的进程
kill 命令用于终止进程
-9 强迫进程立即停止
kill -9 [PID]
启动服务
4.如何启动服务
以启动Tomcat为例,先cd到启动的.sh文件目录
cd /java/tomcat/bin> ./startup.sh
停止Tomcat服务命令
./shutdown.sh
查看日志
5.如何查看测试项目的日志
一般测试的项目里面,有个logs的目录文件,会存放日志文件,有个xxx.out的文件,可以用tail -f 动态实时查看后端日志
先cd 到logs目录(里面有xx.out文件)
tail -f xx.out
这时屏幕上会动态实时显示当前的日志,ctr+c停止
6.如何查看最近1000行日志
tail -1000 xx.out
查阅正在改变的日志文件
语法:tail[必要参数][选择参数][文件]
-f 循环读取
-n<行数> 显示行数
tail -f 20160921.logs :查看正在改变的日志文件;
tail -3000 catalina.out:查看倒数前3000行的数据;
tail -3000 catalina.out | grep ‘AA’:查看倒数前3000行包含字母’AA’的数据;
ctrl+z 可退出
14、查看进程pid
查看端口
7.LINUX中如何查看某个端口是否被占用
netstat -anp | grep 端口号
图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了
查看82端口的使用情况,如图
netstat -anp |grep 82
find查找文件
8.如何查找一个文件大小超过5M的文件
find . -type f -size +100M
9.如果知道一个文件名称,怎么查这个文件在linux下的哪个目录,如:要查找tnsnames.ora文件
find / -name tnsnames.ora
…
更多内容。。。
利哥整理了很多面试的东西,太多了,看看目录吧…
学习软件测试你想要的我都有,你不了解的我都懂(),哈哈哈哈哈。
请大声喊,利哥利哥,天下第一!!!