jmeter⾯试题
⼀、前⾔
接⼝测试最近⼏年被炒的⽕热了,越来越多的测试同⾏意识到接⼝测试的重要性。接⼝测试为什么会如此重要呢?主要是平常的功能点点点,⼤家⽔平都⼀样,是个⼈都能点,⾯试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,⽆⾮就是这个项⽬点完了点那个项⽬,这就是为什么各⾏各业的只要⼿指能点得动的⼈都来转⾏软件测试了。⾯试的时候⾯试官希望你除了点点点,还能更深⼊⼀点的思考页⾯上看不到的功能,也就是接⼝测试了。接⼝测试可不是下图的USB接⼝哈,接⼝是看不见的,但是可以访问!
⼆、2020⾮常全的接⼝测试⾯试题及参考答案
1、你们公司的接⼝测试流程是怎样的?
接⼝测试我们是在XX项⽬做的,主要有XX接⼝,XX接⼝,XX接⼝等。
1、⾸先是从开发那⾥拿到API接⼝⽂档,了解接⼝业务、包括接⼝地址、请求⽅式,⼊参、出参,token鉴权,返回格式等信息。
2、然后使⽤Postman或Jmeter⼯具执⾏接⼝测试,⼀般使⽤Jmeter的步骤是这样的:
1、⾸先新建⼀个线程组。
2、然后就是新建⼀个HTTP请求默认值。(输⼊接⼝服务器IP和端⼝)
3、再新建很多HTTP请求,⼀个请求⼀个⽤例。(输⼊接⼝路径,访问⽅式,参数等。)
4、然后创建断⾔和查看结果树。
3、最后调试并执⾏⽤例,最后编写接⼝测试报告
4、其实我们做接⼝的时候也碰到了蛮多的问题,都是⾃⼰独⽴解决的,⽐如返回值乱码(修改jmeter的配置⽂件为UTF-8编码⽅式),⽐如需要登录后才能取得token鉴权码并且这个鉴权码在下⾯的请求中需要⽤到(使⽤正则表达式提取器提取token的值等。
2、请简述⼀下cookie、session以及token的区别:
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。⽽token是接⼝测试时的鉴权码,⼀般情况下登陆后才可以获取到token,然后在每次请求接⼝时需要带上token参数。
(2)cookie不是很安全,别⼈可以分析存放在本地的cookie并进⾏cookie欺骗,考虑到安全应当使⽤se
ssion,session会在⼀定时间内保存在服务器上。当访问增多,会⽐较占⽤你服务器的性能,考虑到减轻服务器性能⽅⾯应当使⽤cookie
(3)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie
3、接⼝测试如何设计测试⽤例?
接⼝测试⼀般考虑⼊参形式的变化和接⼝的业务逻辑,⼀般设计接⼝测试⽤例采⽤等价类、边界值、场景法居多!
接⼝测试设计测试⽤例的思路如下:
1.接⼝业务逻辑测试?(正例)
接⼝逻辑测试是指根据业务逻辑、输⼊参数、输出值的描述,对正常输⼊情况下所得的输出值
是否正确的测试,也就是测试对外提供的接⼝服务是否正常⼯作。
2.模块接⼝测试?(反例)
模块接⼝测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性⽽进⾏的测试。?
模块接⼝测试的主要包括以下⼏个⽅⾯:?
1)鉴权码token异常(鉴权码为空<;没有鉴权码>,错误的鉴权码,过期的鉴权码)。
2)其他参数异常。
1、必填项检查
2、参数的长度、类型、格式异常:
常规参数:(数字、字符串、⽇期)
参数长度:6-18位。或⾝份证、电话的长度。
参数类型:数字(精度),字母,中⽂,带空格的参数,特殊字符。
⽇期格式:⽇期:年⽉⽇,年⽉⽇时分秒,⽇期格式(包括/,-,:等)。
3)错误码异常覆盖。
4)接⼝测试其他的关注点
接⼝有翻页时,页码与页数的异常值测试
数据库的增删改查,⽐如⼀个post接⼝操作完成后,通过列表页接⼝看下新的数据是否和刚才的post⼀致
接⼝返回的图⽚地址能否打开,图⽚尺⼨是否符合需求
当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。
所有列表页接⼝必须考虑排序值
所有功能都要考虑兼容旧版本
4、接⼝测试执⾏中⽐对数据库吗?
肯定啊,因为接⼝返回值的数据来源于数据库,接⼝对数据的操作还要进⾏深层次的数据库检查!
5、谈谈你对HTTP协议的了解?
超⽂本传输协议,端⼝为80,特点(⽆记忆功能、快速)是由请求和响应两部分组成请求由请求头、请求⾏、请求正⽂组成;响应是由响应头、响应⾏、响应正⽂组成,之前我们公司的接⼝是采⽤https协议
的。
https http+ssl协议端⼝443 ⾯向安全的超⽂本传输协议
6、get和post请求有什么区别?
get和post请求都是客户端向服务器提交的⼀种请求⽅式
get是明⽂传输参数、倾向于请求服务器资源。⽐如打开⽹站
post传输数据不可见,安全性⾼,倾向于向服务器提交数据,⽐如注册等
7、响应状态码有哪些?
1xx:指⽰信息--表⽰请求已接受,继续处理
2xx:成功--表⽰请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进⾏更进⼀步的操作
4xx:客户端错误--请求有语法错误或请求⽆法实现
5xx:服务器端错误--服务器未能实现合法的请求
8、在接⼝测试过程中发现的bug多不多?能举⼏个栗⼦?
这个问题其实回到起来很简单,只要做过接⼝测试的,总能发现⼏个BUG吧,把你平常发现的bug说2-3个就可以了。⾯试官出这个题,主要是想知道你是不是真的做过接⼝测试,毕竟现在很多⼩伙伴简历都是写的假的(你要不写估计⾯试机会都没有,没办法,为了⽣存,能理解)⽐如,提现输⼊框,在页⾯上输⼊负数,肯定是⽆法提交过去(前端页⾯会判断⾦额),如果我不⾛前端,直接⽤接⼝⼯具发请求,输⼊⼀个负数过去。(假设服务端没做提现⾦额数据判断)余额=当前余额(100)-提现⾦额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越⼤了。
9、接⼝测试中有哪些要注意的测试点?
11.1)接⼝中返回了图⽚地址,要⼿⼯去进⾏图⽚的测试(⼤⼩、内容)
11.2)接⼝完成查询功能的时候,数据返回的排序显⽰
11.3)接⼝测试的时候,关注参数的默认值、必填项
10、接⼝执⾏测试后返回结果做对⽐,⼀般⽐对哪部分内容?
之前必须要对⽐的就是返回状态码,其次再去对⽐返回其它关键内容
11、为什么开展接⼝测试?
13.1)接⼝测试属于集成测试、测试介⼊越早、就越能在项⽬早期发现问题,其修复问题的成本越低
13.2)接⼝测试⾮常快速、UI⾃动化执⾏⼀个测试⽤例10S左右、接⼝测试⽤例执⾏的话,需要的时间是毫秒级的
json检查12、之前在接⼝测试过程中,使⽤的⼯具是什么?
postman或jmeter(5.1)
13、之前⽤过抓包⼯具没有?如何使⽤的?
之前在项⽬中⽤过fiddler抓包⼯具进⾏HTTP协议请求的抓取
打开fiddler之后,默认浏览器配置了127.0.0.1 8888端⼝的代理,在fiddler设置好过滤策略后,打开需要进⾏抓包的⽹站进⾏操作,就可以进⾏抓包
14、json数据是什么,你平时如何解析json数据?
⼀种开发常⽤的数据报⽂格式,由键值对和数组两种格式构成。可以通过⼯具bejson⽹站等
15、postman你在⼯作中使⽤流程是什么样的?
1) 编写好⽤例
2) 在postman先建好url环境变量
3) 根据接⼝⽤例所属的模块新建集合管理
4) 在集合中不同模块下录⼊测试⽤例
5) 录⼊测试⽤例的时候根据预期结果在tests页签中增加断⾔
6) 导出通过Newman去运⾏
16、postman中设置环境变量有什么⽤?
在之前项⽬中,接⼝测试测试的环境有开发环境,测试环境等,为了测试的时候⽅便,就在postman设置环境变量,到时所有接⼝都引⽤该环境变量,这样就不⽤为了切换环境导致每次都去修改被测系统接⼝的主机地址;点击右上⾓环境变量管理按钮-新建环境变量,在脚本中使⽤{{变量名}}去调⽤
17、在接⼝测试中关联是什么含义?如何⽤postman设置关联?
关联就是把上⼀个接⼝返回值的部分截取出来,作为下⼀个接⼝的参数,能让接⼝串联运⾏
在postman中设置关联的步骤如下:
1) 先通过正则表达式提取的⽅式或json取值的⽅式把下⼀个接⼝需要的信息从上⼀个接⼝截取出来
2) 使⽤设置全局变量的代码把取出来的值保存到全局变量
3) 在下⼀个接⼝中,使⽤{{全局变量}}代替要替换的静态值
18、postman⽀持什么类型的协议测试?
http和https协议的
19、postman参数化有哪⼏种⽅式?
内建变量、pre-scripts编写js脚本、批量运⾏时导⼊csv或json格式的⽂件
20、Newman如何执⾏postman脚本?
Newman run 脚本名称也可以添加参数⽣成html报表等
21、jmeter之前⽤的是什么版本?如何安装的?
jmeter⽤的是5.1.1版本,安装如下:
先在电脑上安装jdk1.8或以上的版本,然后从官⽹下载最新的安装包,解压后,进⾏环境变量的配置,配置好后即安装完成
22、在项⽬中如何⽤jmeter进⾏接⼝测试?
1) 把线程组数量设置为1,循环次数设置为1
2) 配置好全局变量URL通过配置元件---⽤户⾃定义的变量添加
3) 增加配置元件http请求默认值,放置在⽤户定义的变量之后
4) 添加事务控制器管理和组织测试⽤例
5) 在事务控制中添加http请求添加测试⽤例中的接⼝请求信息
6) 添加对应的断⾔元件进⾏断⾔
23、jmeter中如何设置断⾔?
右击请求---断⾔---响应断⾔---响应断⾔界⾯输⼊要检查⽐对的项,设置好断⾔后,执⾏接⼝测试如果是通过的,查看结果树不会有任何提
⽰,如果断⾔失败,就会有红⾊报错。如果接⼝返回的数据是json数据,也可以添加json断⾔
24、jmeter中如何实现关联?
先从上⼀个接⼝中通过正则表达式提取器或jsonpath解析器截取下⼀个接⼝需要的参数值保存到变量,然后在写⼀个接⼝中通过${变量名}去获取
25、jmeter添加http请求默认值元件有什么作⽤?
添加并设置好后,相当于给所有的http请求取样器都设置了默认值,既不⽤填写取样器中的⽐如主机地址、端⼝、代理等,都可以使⽤http请求默认值设置的
26、jmeter参数化的⽅式有哪⼏种可以实现?
1) 配置元件---⽤户定义的变量元件可以设置全局变量
2) 函数助⼿对话框中可以选择⽐如随机字符串、随机⽇期、随机数字作为参数化
3) 可以使⽤csv⽂件作为参数化,通过配置元件中的csv data set config元件进⾏设置即可
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论