接口面试题

本文详细介绍了接口测试的关键点,包括接口测试用例的编写要点,如必填字段、合法性、边界、容错能力、响应数据校验等。讨论了依赖登录接口的处理,如使用token或session。解释了数据驱动和参数化测试,并提供了测试数据的存放策略。同时,阐述了HTTP与HTTPS协议的区别,并分享了如何在JMeter中进行接口测试、设置断言、关联及参数化的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session与cookie的区别:

1,存放位置不一样,session存放在服务器端,cookie存放在客户端;

2,安全性不一样,session保存在服务器安全系数更高一点;

3,尺寸大小不一样,session基本上没有大小限制,cookie保存的内容很小,由浏览器决定;

4,依赖关系,session是通过cookie中的session-id获得值;

5,服务器性能不一样,session对服务器的性能压力更大一点,cookie放在客户端几乎对服务器没有压力;

6,保存方式不一样,session保存在服务器的一个文件夹里面,可以通过手动修改放到数据库,文件夹,内存里面;cookie保存在客户端的内存里面,若设置了过期时间,是保存在硬盘里面。

 接口测试用例的编写要点有哪些?

1)必填字段:请求参数必填项、可选项

2)合法性:输入输出合法、非法参数

3)边界:请求参数边界值等

4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理

5)响应数据校验:断言、数据提取传递到下一级接口...

6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况

7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点

8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)

* 测试每个参数类型不合法的情况(类型不合法容易遗漏NULL型)

* 测试每个参数取值范围不合法的情况

* 测试参数为空的情况

* 测试参数前后台定义的一致性

* 测试每个参数的上下限(这里容易出致命的BUG,如果程序处理不当,可能导致崩溃)

* 如果两个请求有严格的先后顺序,需要测试调转顺序的情况

依赖于登录的接口如何处理

登录接口依赖token的,可以先登录后,token存到一个yaml或者json,或者ini的配置文件里面,后面所有的请求去拿这个数据就可以全局使用了

如果是cookies的参数,可以用session自动关联

s=requests.session()

后面请求用s.get()和s.post()就可以自动关联cookies了

下个接口请求参数依赖上个接口的返回数据

这个很容易,不同的接口封装成不同的函数或方法,需要的数据return出来,用一个中间变量a去接受,后面的接口传a就可以了

什么是数据驱动,如何参数化?

参数化和数据驱动的概念这个肯定要知道的,参数化的思想是代码用例写好了后,不需要改代码,只需维护测试数据就可以了,并且根据不同的测试数据生成多个用例

测试的数据你放在哪?

测试数据存放总结:

1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如ini)

2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成

3.对于一个接口有多组测试的参数,可以参数化,数据放yaml,text,json,excel都可以

4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理

5.对于邮箱配置的一些参数,可以用ini配置文件

6.对于全部是独立的接口项目,可以用数据驱动方式,用excel/csv管理测试的接口数据

7.对于少量的静态数据,比如一个接口的测试数据,也就2-3组,可以写到py脚本的开头,十年八年都不会变更的

总之不同的测试数据,可以用不同的文件管理

接口产生的垃圾数据如何清理

造数据和数据清理,需要连数据库做增删改查的操作

测试用例前置操作,setUp做数据准备

后置操作,tearDown做数据清理

HTTP 和 HTTPS 协议区别?

答:https 协议需要到 CA(Certificate Authority,证书颁发机构)申请证书,一般免费证书

较少,因而需要一定费用;

http 是超文本传输协议,信息是明文传输,Https 协议是由 SSL+Http 协议构建的可进行加

密传输、身份认证的网络协议,比 http 协议安全;

http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443;

在项目中如何用jmeter进行接口测试?
把线程组数量设置为1,循环次数设置为1;
配置好全局变量URL通过配置元件---用户自定义的变量添加;
增加配置元件http请求默认值,放置在用户定义的变量之后;
添加事务控制器管理和组织测试用例;
在事务控制中添加http请求添加测试用例中的接口请求信息;
添加对应的断言元件进行断言。
17、jmeter中如何设置断言?
右击请求---断言---响应断言---响应断言界面输入要检查比对的项,设置好断言后,执行接口测试如果是通过的,查看结果树不会有任何提示,如果断言失败,就会有红色报错。如果接口返回的数据是json数据,也可以添加json断言。

18、jmeter中如何实现关联?
先从上一个接口中通过正则表达式提取器或json path解析器截取下一个接口需要的参数值保存到变量,然后在写一个接口中通过${变量名}去获取。

19、jmeter添加http请求默认值元件作用?
添加并设置好后,相当于给所有的http请求取样器都设置了默认值,既不用填写取样器中的比如主机地址、端口、代理等,都可以使用http请求默认值设置的。

20、jmeter参数化方式有哪几种可以实现?
配置元件---用户定义的变量元件可以设置全局变量;
函数助手对话框中可以选择比如随机字符串、随机日期、随机数字作为参数化;
可以使用csv文件作为参数化,通过配置元件中的csv dataset config元件进行设置即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lilinlin123

总结不易,赏杯水钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值