面试怎么介绍接口测试(接口测试关注的重点)
1。接口测试怎么做的?
原来我们的接口测试,开发这边会给我们一个接口文档,我们根据接口文档编写测试用例,考虑接口正常场景跟异常场景。测试用例编写完成后,我们会用pythonrequest去执行,查看返回的结果是否跟用例的一致,不一致有bug。
需要注意的是参数之间是不是组合关系,如果是组合关系就需要同时考虑,如果不是组合关系就要单独考虑。
也需要考虑正常和异常的场景,多一个参数和少一个参数以及参数为空的情况。比如我们用pythonrequest做的一个前端注册接口,首先我们把每条用例定义成一个函数模块,再把需要组合的参数编写进用例里面。
比如用户名跟密码这是组合关系就要同时对这两个参数进行考虑。当用户名与密码正确的情况下,返回的是一个正确的注册成功的信息。当用户名为空和两个密码一至的情况下返回的提示应该是一个用户名不能为空的信息。当用户名正确和两个密码不一至的情况下返回的提示应该是一个密码不一至的信息,当用户名正确和两个密码都为空的情况下返回的提示应该是一个密码不能为空或密码过弱的信息。当用户名重复,手机号码重复,勾选了协议和没勾选了协议的情况,还有同时我们也需要用等价类边界值对参数的长度、特殊符号的输入和类型进行考虑。
最后加assert来断言判断返回的参数是否正确。
接口测试的主要好处:在后端测试接口,覆盖更加全面,测试时间可以提前。原来在接口测试过程中,发现问题最多的,来源于格式的校验这块。比方说,原来我们申请借款,利率设置成5000,也可以申请成功,功能测试,界面已经做了校验,只能在接口中才能测试出这个问题,还有原来我们申请借款时候,需要勾选,同意,协议,接口中不没有勾选,也表示成功。
2。接口自动化测试怎么测?
原来我们也做了很多接口自动化。接口自动化这块,其实原来我们也是用jmeter请求去做的,这个时候,我们也用到一些工具,http代理,主要方便编写接口请求,通过录制就行了,我觉得接口自动化只是在接口测试中多加了一些参数化、关联、断言参数,主要是函数参数化,自定义变量参数化,文件参数化,主要文件类型csv跟txt,不过原来csv文件用的比较多,还有一些数据库的参数化,断言,主要响应代码断言,响应文档断言。
比方说,原来我们一个登录接口主要是正常场景,异常场景这块。
正常场景:主要是用户跟密码正确,采用数据参数化,把用户名用随机函数进行参数化,随机长度大一些,用户名不存在的情况,原来是通过文件参数化,设置参数值,密码不正确也是通过文件参数化,接口请求中host地址,目录地址,我们都进行数据化,自定义变量去操作,结果检查中,我们主要是用断言来检查,每个请求,设置了2个断言,一个响应代码断言,一般是200,响应文本断言,登录成功,返回码为1,状态提示成功,检查是否成功,
异常场景:都需要设置断言,去检查结果原来做的申请借款接口,需要登录接口cookie,我需要建立2个接口,一个登录接口,一个申请借款接口,通过正则表达式去提取登录接口返回cookie,在申请借款请求接口,设置httpcookie时,值为登录接口返回cookie,还有也要考虑原来我们项目,还有token值,登录返回token提取,当成申请借款的请求参数,当测试场景的脚本编写完成,执行接口测试用例,我们在察看结果树中,检查,主要是看颜色这块,红色检查哪些地方失败,绿色表示通过
3。你们是怎么做接口自动化的?
原来我们接口主要是用的pythonrequests去运行的。
首先,开发会给我们一个接口文档,拿到接口文档后,我们就进行测试点的分析,考虑正确场景,条件的组合,异常场景,多一个参数,少一个参数,参数为空的情况,
比如原来我们做一个生成订单的接口,考虑正常场景,异常场景正常场景就是不同的订单类型,订单金额,能不能申请订单,每个参数的格式类型的校验,异常场景,多一个参数,少一个必填参数的时候,还有参数为空的情况,原来我们是用pythonrequest去做的接口。
首先,导入request包。建立一个headers,保存请求头的信息,因为订单请求方式是post类型,数据格式是form表单格式,我们把数据保存到data的字典里面,这个时候我们还需要登录的cookie值跟登录后产生的token值,我们会去通过动态关联去获取登录的token跟cookies,cookies值的话,我们是直接调用登录返回的cookies,token值的时候,我能是通过导入re模块,通过正则表达式去提取当参数,headers,cookies输入完成以后,我们就发送请求,打印返回结果,检查返回结果是否跟我们测试用例一致当运行其他测试用例时,我们去修改data里面的参数就行,在发送请求,有的请求时https协议的时候,我们发送请求的时候还会verifyfalse去忽略掉证书验证对应多个接口调用cookies我们会用到session去保存,接口发现比较多的问题,就是格式校验这块。比如说我们提交订单,订单数据没有显示,订单格式也没有显示,输入字母,汉字都可以订单类型为空,也会生成订单成功,我觉得接口可以发现接口更多的bug,还可以提早进行测试,提高测试的质量。
4。接口自动化
原来我们接口自动化是用pythonrequestunittest执行。接口自动化其实主要就是接口测试的基础上添加了断言、参数化、动态关联,做接口自动化之前,我们也会划分模块:报告、公共的模块、测试数据、测试报告,主要的目的是为了方便后期的维护。
测试数据,一般原来我们就是用的接口测试用例;公共的模块主要是里面的一些公共的操作,比如说用例excel数据的读取,数据库的连接、还有我们封装的每个接口请求;断言的主要是获取访问接口的值判断,用的是assert;参数化主要用的比较多是excel表格,就是测试用例数据;还有需要调用登录后的cookies跟token的时候,我们就会用到关联;
比如说原来我们写的一个申请借款的接口吧。
首先我们会编写测试用例,把每个用例数据保存到excel中再建立一个申请借款的模块,这个时候我们去调用申请借款的功能模块,里面的参数我们是保存在excel表格中,我们建立发送请求,通过参数化,去读写excel表格中的数据,获取到返回的数据,通过assert去对应返回的数据跟用例中异常的数据,这个时候也会做数据库断言,去连接数据库去查询数据库中时候存在查询,如果是返回结果是json数据格式,我们还会转化下格式后,再去断言,这个申请借款模块,也会用到登录的cookie值token,我们先建立一个登录的请求,提取返回的cookie值token,excel表格多个用例,我们就用到循环去运行,读取excel中用例总的条数,去循环运行,这里要注意的是,就是excel表格数据时是str我们要eval转化成字典格式,把每个接口封装好以后,我们就会调用unittest框架去运行所有test文件的测试用例,如果只是执行部分用例,也可以通过unittest框架来指定接口自动化
我个人觉得,性价比是比较高的,实现起来简单、维护成本低,容易提高覆盖率等特点。接口是稳定的,最多是增加一个字段或者新增接口之类的低成本,有了相对的稳定性,不需要大量重新编写脚本,只需要基础维护包括用例的扩充就可以了,执行的快,反馈的速度快
5。平常你是怎么测试接口的?
通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。
参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
接口安全:
1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成3,是不是我的余额还要增加?
2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4、密码安全规则,密码的复杂程度校验
异常验证:
所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
性能测试
接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别。
6。接口测试经常遇到的bug和问题,如下:
(1)传入参数处理不当,导致程序crash;
(2)类型溢出,导致数据读出和写入不一致;
(3)因对象权限未进行校验,可以访问其他用户敏感信息;
(4)状态处理不当,导致逻辑出现错乱;
(5)逻辑校验不完善,可利用漏洞获取非正当利益等。
7。接口自动化测试中携带哪些参数
Url:http、https、tcp、ftp
Method:post、get、delete、put
Data:applicationjson、applicationxwwwformurlencoded、multipartformdata、textxml
Headers:contenttype、useragent、cookie、token、authorization
8。当一个接口出现异常时候,你是如何分析异常的?
答:先抓包,用fiddler(charles)工具抓包,或者浏览器上F12调试工具;APP上的话,那就用Fiddler做代理,通过手机设置代理去看请求和返回报文;查看后端日志,如Linux系统通过xhell连上服务器,查看接口日志,查看是否有报错信息(命令:tailf日志文件);
9。接口测试中,依赖登录状态的接口如何测试?
依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie。
10。平常用什么工具测接口的?
答:常用http协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、jmeter等。
11。没有接口文档,如果做接口测试?
用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具Fiddler、Charles等)
12。怎么设计接口测试用例?
通常,设计接口测试用例需要考虑以下几个方面:
是否满足前提条件:有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token。
逆向用例:针对是否满足前置条件(假设为n个条件),设计0n条用例;
是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的常规值,其他不填写,设计1条用例;
业务规则、功能需求这里根据时间情况,结合接口参数说明,可能需要设计N条正向用例和逆向用例;
参数是否必填逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例;
参数之间是否存在关联有些参数彼此之间存在相互制约的关系;
参数数据类型限制逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例;
参数数据类型自身的数据范围值限制正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例;
13。请问你们公司是如何做接口测试的?
获取接口规范;
设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求);
各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选必选,还有考虑参数有互斥或关联的情况);
接口返回值各种验证(符合接口文档需求);
了解接口实现逻辑,实现逻辑覆盖(语句条件分支判定);
接口能并发执行吗、安全吗,性能满足要求吗;
采用工具或者自写代码来验证;
发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态;
14。测试接口,接口信息从哪里获取呢?
常用的有三种方式:
1通过抓包工具比如fiddle,charles获取接口信息
2通过浏览器开发者工具,networks查看接口请求信息
3当然最直接和最靠谱的就是接口文档,这就是接口的需求文档。一个规范的接口文档最基本的应该包含了(接口请求地址,请求方法,请求头信息说明,接口入参说明(包括参数的类型、是否必填、长度范围等),接口响应示例等)。
15。什么是接口测试?
通过测试不同情况下的输入参数和与之对应的输出结果来判断接口是否符合或满足相应的功能性、安全性要求;接口测试就是代替前端或者第三方,来验证后端实现是否符合接口规范。;
16。常见接口
webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
httpapi接口:是走http协议,通过路径来区分调用的方法,请求报文都是keyvalue形式的,返回报文一般都是json字符串格式,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
17。接口测试的好处?(为什么要做接口测试)
测试接口的正确性和稳定性,能快速定位bug,提高测试效率。
能为项目平台带来高效的缺陷监测和质量监督能力;
平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本)
18。接口测试原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收响应数据后并进行判断。
请求:是否正确,默认请求成功是返回200,假如请求错误返回400,404,500等状态码
检查:返回数据的正确性与完整性
安全性:接口一般不会暴露在网上任意被调用,需要做一些限制,比如必须登录或者请求次数、频率限制
19。接口测试流程
定位服务器接口资源并提交测试数据,然后查看响应结果是否符合预期
定位接口资源(URL)
提交测试数据
检查响应结果
20。post请求体数据类型?
芥子园画谱技法讲座(芥子园画谱讲解)芥子园画谱技法讲座(芥子园画谱讲解)作为一个理科生,在学习国画之前,我对王维的印象一直停留在诗人的范畴,但实际上现实中的王维,是一个诗书画的全才,还当了官,官名尚书右丞,所以人们称
中国小提琴论坛(小提琴网上教学平台)中国小提琴论坛(小提琴网上教学平台)上海音乐学院第六届国际小提琴大师班暨小提琴奏鸣曲展演第一届全国小提琴论坛本周开启啦今年有哪些小提琴大师会来呢?为了将小提琴专业建设成具有国际视野
中国美术学院回应新生手册争议近日有关于中国美术学院回应新生手册争议的问题受到了很多网友们的关注大多数网友都想要知道中国美术学院回应新生手册争议的具体情况那么关于到中国美术学院回应新生手册争议的相关信息小编也是
args是什么意思(java是干什么的)一前言我们知道JVM参数分为自定义参数JVM系统参数,Javamain方法的参数。今天就谈谈怎么使用吧。二查看jvm参数定义自定义参数我们打开cmd窗口,输入java,就能看到自定
编程是干什么的(编程怎么学)这里是博士聊IT,来都来了,给博士点下下呗。今天聊聊编程的本质。程序就是数据结构控制逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映
嵌入式烤箱什么牌子好(嵌入式烤箱品牌)我家硬装刚结束,但是厨房三件套早就备齐了洗碗机垃圾处理器蒸烤箱,有了这三宝,简直是做饭洗碗清理垃圾一条龙服务,解放双手妥妥的。前两样我是早就入手了的,蒸烤箱最近才开始研究,做了一周
嵌入式系统有哪些(嵌入式系统的三个基本特点)编辑导语硬件产品经理在面对产品研发的时候,除了执行沟通以及跟进流程以外,更是要对技术方面有着一定的了解因为硬件行业的很多专业类内容,如果什么都不懂的话,在日常业务中可能也会有所阻碍
丝绸之路复兴计划(丝绸之路的主要路线)丝绸之路复兴计划(丝绸之路的主要路线)代号名称丝绸之路复兴计划英文名称SilkRoadrevivalPlan发起者俄罗斯伊朗土耳其中国在内的19国行动时间2008年2月19日目的改
衣服怎么挂(衣服太长怎么挂好看)你是否在生活烦闷的时候就想出去旅行呢?但是在家里面做整理,可以让我们即使不出门旅行,也能在日常生活中感觉到旅行的乐趣。整理和旅行有很多相同之处。人们是为了摆脱过去减掉人生当中的负能
篮球架多少钱(篮球架子图片大全集)随着篮球架的运动越来越普及,人们都希望自己买一套篮球架放置在家中或者其他的活动场所。在购买之前我们首先就是考虑篮球架的价格是否便宜合理,我们也都知道价格越高相对于篮球架的种类也就越
怎么抠人物(给视频换背景的软件)老年人学剪映(055)四类抠像方法分析请先看我的演示,然后再详细看文字内容。重播播放00000000正在直播
曹魏皇帝(曹魏的五位皇帝)曹魏皇帝(曹魏的五位皇帝)对于三国时期的魏国(213年5月266年2月4日),后世史家多称曹魏,由于之后的北魏被称作后魏,故曹魏也称为前魏或者先魏,是三国之中最强大的国家。延康元年
父亲节英文(为啥妇女节WomensDay要用复数)父亲节英文(为啥妇女节Women39sDay要用复数)一年一度的妇(女)女(王)节到啦祝各位女王节日快乐呀!同时,小编还有个疑问同样是给女王过节妇女节Women39sDay,是复数
夏鲁寺(西藏佛教后弘期初期所建古老寺院)夏鲁寺(西藏佛教后弘期初期所建古老寺院)夏鲁寺位于西藏日喀则市东南30公里处的加措区夏鲁乡,始建于公元1087年,相当于宋朝哲宗元佑二年。建寺的创始人名杰尊嘉饶穹涅。14世纪初叶,
胡如珊(胡如珊一个网红创造者的反对意见)胡如珊(胡如珊一个网红创造者的反对意见)绸面立领衬衫松紧阔腿裤均为HIDEMI胡如珊(RossanaHu)如恩设计与设计共和的创始合伙人,毕业自普林斯顿大学与加州大学伯克利分校建筑
不上补习班的第一名(初中三年从不去培训班)不上补习班的第一名(初中三年从不去培训班)升学季,学霸故事总是特别醒目。杭州采荷实验学校有一位神奇学霸他初中三年没有参加任何课外辅导班,成绩却令同学艳羡。在之前初三学情检测中,稳居
狗牙山(北京十大惊险路线狗牙山)狗牙山(北京十大惊险路线狗牙山)狗牙山位于门头沟区后桑峪村以北,原名碣石岭(因在碣石村附近)整座山山势耸立,一条山脊横贯西北东南方向,纵向分布着出数十条山脊,远远望去神似参差不齐的
爱情告白(20条最深情的告白句子)爱情告白(20条最深情的告白句子)1世界上最动听的情话,不是我爱你,不是在一起,而是在我最脆弱的时候,你说有我在!2我所认为的最深沉的爱,就是我把自己,活成了你的样子。3我想告诉全
面膜怎么使用(一次性面膜如何使用)我们经常看到别人分享自己的护肤经验,每天都说要敷面膜,在见证女神们的美丽之后,很多妹子开始着手囤积面膜。但是,面膜真的用了许多后,发现自己收获的不是水润美丽的肌肤,而是越来越敏感的
猥亵怎么读(猥?)觊觎jy渴望得到不应该得到的东西。龃龉jy上下牙齿不相对应,比喻意见不合,相抵触。囹圄lngy释义监狱。容易与囫囵混淆。hln囫囵整个,完整的。魍魉wngling纨绔wnk鳜鱼gu
永之氓(永之氓咸善游文言文翻译)永之氓(永之氓咸善游文言文翻译)永之氓咸善游这句文言文翻译是永州的百姓都善于游泳。是出自唐代柳宗元的哀溺文序。哀溺文序是柳宗元散文的代表作之一,也是柳宗元贬时弊与抒孤愤的篇什之一。
男女笑话(男女流氓笑话大全爆笑)男女笑话(男女流氓笑话大全爆笑)1我买了条新连衣裙,穿着一边在屋子里走来走去,一边回头问老公这件衣服好看吗?老公说好看,不过你还有一件比这更好看。我哪一件?老公围裙。2看到老公在玩