python接⼝测试⾯试题及答案_Python接⼝测试题(持续更新
中)
1、json和字典的区别?
Json是轻量级的数据交互格式,以key-value的键值对形式来保存数据,结构清晰,可以说是⽬前互联⽹项⽬开发中最常⽤的⼀种数据交互格式。
字典,同样是以key-value的键值对来保存数据,是python中的⼀种数据类型。
2、你做接⼝⾃动化测试时,测试数据放哪⾥?
经典个人网站1) 对于⼀些基础配置⽐如数据库配置可以放到properties⽂件(yaml⽂件,没⽤过就别拓展了)
2) 接⼝测试需要⽤到的数据可以放数据库表,也可以放到excel中。
3、什么是数据驱动?
数据驱动就是通过excel,或者xml,数据库等数据结构来维护测试数据,通过相应的技术去处理,拿到测试数据⽤于测试,从⽽实现测试数据与代码的解耦,数据驱动测试的本质是⾼级的参数化。
4、excel中如何设计你的⽤例?
1) 所有的接⼝信息维护在⼀个表单
2) 关于接⼝的⽤例数据维护在⼀个表单
input根据内容自适应宽度3) 接⼝传参⼀列来传,通过构造json格式的字符串即可解决传多个参数的问题,同时提升了⽤例的可维护性
5、excel中的数据怎么拿出来?
通过第三⽅库openpyxl来完成,项⽬只需要引⼊openpyxl库,通过它提供的api即可完成对于excel的操作,甚⾄于我们⾃⼰也可以做⼀些⼆次封装,使得操作更⽅便。⼀⾏数据就是⼀个⽤例。
6、如果有些接⼝做了鉴权(需要鉴定权限),怎么实现这些接⼝的⾃动化测试?
⾸先需要明确接⼝是通过什么机制来实现的鉴权
如果是通过会话id(123456)来实现鉴权的,那么先调⽤完登录接⼝,拿到它返回的这个数据,存储起来,后⾯再调⽤其他接⼝的时候直接带上这个数据过去就可以了。
jquery定位选择器
如果是通过token来实现鉴权的,那么同样只需要在调⽤完登录接⼝,拿到它返回的这个数据,存储起来,后⾯再调⽤其他接⼝的时候直接带上这个数据过去就可以了。
7、什么是会话?
所谓会话就是session,⽽session是⼀种服务器的缓存技术,由服务器端创建,⽤户登录了系统,⼀般就会把登录⽤户的信息保存到这个session对象中,然后把此会话对应的id(JSESSIONID)返回,因此⼤部分系统都会⽤到session机制来实现鉴权。Session保存数据⽅式也是以key-value的形式。
8、什么是token?
所谓token其实就是服务器端返回的⼀个字符串(有点类似于:xys73494954sdhcdr83435这么⼀串),这个数据是基于什么算法⽣成的需要开发确认,⼀般这个数据是唯⼀的,服务器每次返回的token都会不⼀样。Token之所以可以⽤来做鉴权,原理如下:
⽤户a调⽤了登录接⼝--》登录了系统b--》服务器端⽣成了⼀个唯⼀的token信息(假设为c),然后会拿⽤户的编号id(假设为d)做了⼀个映射:c-d,然后将这样的映射关系存到数据库或redis等缓存中,然后再返回这个token给客户端--》客户端再调⽤其他需要鉴权的接⼝时,只需要将缓存起来的这个token带过去验证--》服务器根据此token检查是否有登录⽤户信息来判断此请求是否是⼀个已登录授权的⽤户。(这⾥客户端怎么取到这个token,怎么存,再次请求时怎么带过去,上⾯接⼝鉴权部分已解释)。
某个接⼝请求,参数依赖上个接⼝的返回数据,怎么处理(接⼝关联)?
场景:b接⼝在调⽤的时候参数依赖于a接⼝的返回数据。
处理⽅案:
a接⼝调⽤完--》从响应中取出b依赖的这个参数--》保存起来--》b调⽤的时候,取出这个信息--》当做参数传过去即可。
保存⽅案:
参考问题5中的数据保存⽅式
9、接⼝调⽤依赖第三⽅的接⼝b,⽽b接⼝还未提供给你,如何处理?
mysql面试题集锦
通过mock框架搭建⾃⼰的mock系统/平台(其实就是⾃⼰开发接⼝),模拟这个第三⽅接⼝mock⼀个出来即可,这样就解决了这个依赖。
10、接⼝测试的垃圾数据如何清理?
可以⾃⼰准备单独的环境(独⽴的数据库),这样接⼝调⽤产⽣的数据可以在整个套件执⾏完后(@After
卵巢癌分期标准2021figo分期Suite)通过执⾏sql脚本来完成数据删除。
11、你做接⼝⾃动化,项⽬⽤的是什么数据库,⽤什么来操作的这个数据库?
成都linux培训机构
Mysql,可以通过jdbc来实现数据库的增删查改等操作。