hui一,接口考察点(一般面试会注重问项目经验)
工具:jmeter,postman,apifox
1.能够说出接口关联,鉴权码,加密,签名(验签),错误码,请求方式,入参,出参
关于以下几点,差不多了解就行
(1)http和https的区别,get和post的区别
(2)接口的常用验证码
(3)常见的接口请求头 Accept,X-Requested-With,User-Agent,Content-Type,Cookies
2.你最近项目中有哪些接口,详细说明下
(1)接口的测试时机:前后端联调的时候
(2)在面试前面要至少准备5个详细的接口案例
(3)一般存在数据交互的地方就存在接口
3.你是怎么做接口测试
(1)怎么些接口用例
正例,反例(鉴权(鉴权码过期),参数(类型,长度),错误码,黑名单,禁用,调用次数,分页,兼容性)
(2)可能会问写过多少条用例,一般一个简单接口,正反用例一般都会二三十条
(3)怎么执行用例,具体举例子,哪些接口要做关联,哪些接口要做加密,还有动态参数和签名认证,就是要举这种具体案例,不能直接说使用了xx用具执行的,没有说服力
4.你接口测试中,遇到哪些bug,多吗
(1)前后端联调的时候bug比较多,先说业务相关的bug,也要举具体的案例,可以说接口功能没实现,或者说和业务相关的一个值没有做校验等,不能直接说长度过长,参数不正确等;再说鉴权相关的bug
5.如果一个接口请求不通,你会考虑哪些方面的问题(考察解决问题的能力)
(1)首先检查请求四要素:请求方式,请求路径,请求参数,请求有,要主要有没有空格
(2)网络是不是畅通
(3)在迭代的过程中,项目没有部署
(4)服务器的防火墙有没有关闭掉
(5)查看后台日志是否有报错
(6)访问的权限是否正确
(7)是否开了代理,如果是https的请求,但是没有安装证书,就请求不通
6.cookie,session,token有什么区别
相同点:都是用作鉴权,都是服务器生成
不同点:
--cookie保存在浏览器上面,不安全
--session保存在服务器内存,并且他一般都是通过cookies传输sessionid,比cookies相关安全访问量大的时候会影响到服务器的内存
-- token存储在服务器的数据库,通常是通过登录获取,后续所有的接口都必须带上token才能请求成功
7.在jmeter一般用的最多的是哪些函数,至少要说3,4个
8.特定接口,在jmeter/postman要做xx加密或者签名的接口,要怎么处理
(1)首先说出各种加密方式
——对称加密:DES,AES,BASE64
——非对称接口:RSA
——只能机密不能解密:MD5,SHA
一般想获取解密后的请求参数,都是基于java的二次开发处理得到对应加密后的值
9.依赖于第三方的数据接口,你是怎么 测试的
(1)用mock,前端开发调用mock.js来mock
(2)最简单对测试最有好的是:apifox
10.如何验证接口是否返回成功
(1)状态断言,验证状态码是否返回200
(2)核心业务断言,返回内容比较短用key-value校验,要是比较长的话就用里面的关键信息校验
(3)如果是XML或者json格式,可以用正则表达式或者jsonpath提取一些关键的信息进行校验
10.为什么有postman,jamter等工具实行接口测试,但还要做接口自动化呢
(1)一般大型的项目,尤其那种经常更新迭代的,就会有接口,接口自动化就是更方便回归测试
(2)排错定位问题都不是特别的方便
11.接口自动化/web自动化怎么做
在回答的时候把流程细化
(1)首先是自动化测试的可行性分析,首先是周期,一般项目超过一年的比较划算使用自动化,像接口自动化,覆盖路一般可以达到95%,但是web自动化最多覆盖率可能就是30%
(2)其次考虑代码会不会变更,要是经常变更,自动化脚本维护成本就比较高
(3)调研项目组的自动化能力以及自动化框架和工具的选择,一般会有一个dome
(4)计划和框架搭建,一般是两周
(5)编写调试和维护自动化用例
(6)无人值守测试
(7)添加用例
(8)生成测试报告和通知
一般自动化要达到的效果就是,后续代码不用变化,只需要增删改用例就行
12.你在哪些项目做了自动化,自动化率是多少,有多少case,执行需要多长时间
(1)接口自动化:一般来说按照一个接口20个case来说,执行一个case大概200ms,那要是执行3000个,大概就是10min
()web自动化一般执行一个case,都是5-10s,那要是执行3000个,大概就是2h,如果用了多线程可能就是1h
13.什么是po模型(是web自动化入门的结束)
(1)po是页面对象模式,意思是把页面看成对象,页面元素就是对象的属性,页面的动作就是对象的方法,po模型一般分三层。基础层(基础代码BasePage),PO层(元素的定位和方法),测试用例层业务逻辑,并且po调用基础层,测试用例调用po层
(2)好处就是让测试逻辑更加简介和清晰,如果页面元素发生变更,只需要改po层就行
(3)了解下关键字模式,怎么实现零代码实行ui自动化
对于接口自动化要知道是要解决哪些问题,如何实现接口关联,如何处理加密等问题
14.框架如何实现数据驱动的
(1)什么是数据驱动:数据驱动就是像数据文件,像excel,yaml,读取,输入或者输出测试数据,通过数据驱动方法,把数据传入到自动化脚本里面,自动化脚本会自动读取测试数据,改变测试的状态,判断它测试的结果,从而去实现数据和代码的分离
15.自动化运用了哪些python库,处理过哪些异常
(1)web自动化相关:webdriver,webdriverwait,By,os,xlrd,wlwt,pytest,time,logging,htmltestrunner
(2)接口自动化:os,requests,re(正则提取的时候时候这个库,re.search()获取一个,re.findall(),获取多个,返回的是一个列表),jsonpath(也是提取数据的时候使用),pyyaml,allure
(3)一些异常,
nosuchelementexception(没有对应元素异常)
nosuchframeexception(没有对应框架异常)
ElementNotVisiableException(元素不可见异常)
TimeOutException(超时异常)