持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情
cookie **和session的区别
答:
cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie
**请求接口中常见的返回状态码
答:
1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
2xx -- 成功(表明服务器成功地接受了客户端请求)
3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)
4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)
5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)
常见的返回码有:
· 200 OK - [GET]:服务器成功返回用户请求的数据
· 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功
· 202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)
· 204 NO CONTENT - [DELETE]:用户删除数据成功
· 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
· 401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)
· 403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止
· 404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的
· 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
· 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功
**什么是DNS?
答: DNS 是域名系统 (Domain Name System),DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。
**请问你们公司是如何做接口测试的?
答:
接口测试实际跟一般测试不同就是测试用例的设计部分。
①获取接口规范。
②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。
③各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)。
④接口返回值各种验证(符合接口文档需求)
⑤了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)
⑥接口能并发执行吗、安全吗,性能满足要求吗?
⑦采用工具或者自写代码来验证。
⑧发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态。
**怎么设计接口测试用例?
答:
通常,设计接口测试用例需要考虑以下几个方面:
①是否满足前提条件
有些接口需要满足前提,才可成功获取数据。常见的,需要登录Token
逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其他不填写,设计1条用例
③业务规则、功能需求
这里根据时间情况,结合接口参数说明,可能需要设计N条正向用例和逆向用例
④参数是否必填
逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例
⑤参数之间是否存在关联
有些参数彼此之间存在相互制约的关系
⑥参数数据类型限制
逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例
⑦参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例
可用性测试
根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:
· 接口功能是否正确实现;
· 返回值测试 - 返回值除了内容要正确,类型也要正确,保证调用方能够正确地解析;
· 参数值边界值、等价类测试;
错误和异常处理测试
· 输入异常值(空值、特殊字符、超过约定长度等),接口能正确处理,且按预期响应;
· 输入错误的参数,接口能正确处理,并按预期响应;
· 多输入、少输入参数,接口能正确处理,且按预期响应;
· 错误传输数据格式(如json格式写成form格式)测试;
安全性测试,主要指传输数据的安全性:
· 敏感数据(如密码、秘钥)等是否加密传输;
· 返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等;
· 接口是否对传入的数据做安全校验,如身份ID加token类似校验;
· 接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃);
性能测试,如接口的响应时间、并发处理能力、压测处理情况:
· 并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障);
· 接口响应时长在用户可忍受的范围内;
· 对于请求量大的接口做压测,确定最大的瓶颈点是否满足当前业务需要;
平常用什么工具测接口的?
答:常用http协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、jmeter等。