#搬运工#
一、json和字典的区别?
json就是一个文本、字符串;有固定的格式,格式长得像Python字典和列表的组合;以key-value的键值对形式来保存数据,结构清晰。是目前互联网项目开发中最常见的一种数据交互格式。
字典属于Python里面的基本数据类型
二、接口自动化测试的测试数据放哪里
对于一些基础数据比如说数据库配置可以放到静态配置配置文件中(日志级别,请求头,请求URL,账号密码)
接口测试需要用到的数据可以放到数据库表,也可以放到Excel文件中(请求方法,请求数据)
三、什么是数据驱动
数据驱动就是通过Excel来维护测试数据,通过相应的基数处理,拿到测试数据用于测试,从而实现测试数据与代码的解耦
数据驱动测试的本质就是高级参数化。
四、Excel中如何设计用例
1.所有的接口信息维护在一个Excel文件中
2.每个接口,用一个sheet表维护
3.接口传递请求参数用data列,通过构造json格式的字符串即可解决多个传参的问题,同时提升了用例的可维护性
五、Excel中的数据怎么拿出来
通过第三方库openpyxl来完成,项目只要引入第三方库,通过他提供的api及完成对Excel的操作,甚至与可以做一些二次封装,封装一个读写Excel中的用例方法,使得操作更方便,一行数据就是一个用例。
六、接口做了鉴权(需要坚定权限),怎么实现这些接口的自动化测试
通过token来实现鉴权的,先调用登录接口--》拿到它返回的数据--》存储(存储在动态环境envdate),后面在调用其他接口的时候带上这个数据过去。
把token保存在动态环境变量中是因为token是可以变化的,一般不放到静态环境变量
七、什么是会话?
所谓的会话就是session,而session是一种服务器的缓存技术,由服务器端创建,用户登录系统,一般会把登录用户的信息保存到这个session对象中,然后把此会话对应的id(jsessionid)返回,因此大部分系统都会用到session机制老实现鉴权。session保存数据方式也key-value的形势。
八、什么是token?
所谓token其实就是服务器返回的字符串(比较复杂,有点类似于xys73494954sdhcdr83435这么一串),基于JWT生成的token令牌,一般这个数据是唯一的,服务器每次返回的token都会不一样。
token之所以可以用来做鉴权,原理如下:
用户a调用了登录接口--》登录系统B-->服务器端生成了唯一的token信息C,然后会拿到用户的编号id(假设为d)做了一个映射:c-d,然后姜这样的映射关系存到数据库或者Redis缓存中,然后再返回这个token个客户端--客户端在调用其他需要鉴权的接口时,只需要将缓存起来的这个token带过去验证--》服务器根据次token检查是否有登录用户信息来判断次请求是否是一个已登录授权的用户。(这里客户端怎么取到token,怎么存,再次请求时怎么带过去,上面接口鉴权部分已解释)
九、某个接口请求,参数依赖上个接口的返回数据--接口关联?
例子:B接口在调用的时候参数依赖a接口的返回数据
处理方案:a接口调用完-->从响应中取出B依赖的参数--》保存--》B调用的时候,取出这个信息--》当做参数传过去
十、接口调用依赖第三方的接口b,而b接口还未提供给你,如何处理?
通过mock框架搭建自己的mock系统/平台(其实就是自己开发接口),模拟这个第三方接口mock一个出来即可,解决了这个依赖。
十一、做接口自动化时怎么做数据验证
数据验证主要包含两个方面
接口响应报文的验证
利用jsonpath取出响应数据(大多数情况下是json)中的关键字段的值,通过AssertEqual断言期望值和实际结果是否符合预期。
数据库表数据的验证
做表数据验证要先明白两点:
a.表数据验证首先得明白这个接口的基本业务,会影响到哪些表,哪些字段的数据,然后准备查询sql有针对性的查数据。
b.并不是所有的用例执行都会操作数据库,影响到表数据,因此只影响到了表数据的用例,才准备查询脚本
十二、如何提升测试套件的执行率(接口测试优化)
1、减少Excel读写,减少不必要的io操作
2、Excel读取测试数据,全部村吃到静态变量中
3、Excel数据回,尽量通过批量方式去写。
十三、做接口自动化过程中遇到的问题
十四、框架的大概结构
data层:数据层(Excel,py文件存放的测试用例数据)
testcase层:测试逻辑层
log层:脚本运行日志
reports层:报告层
common层:公共方法层(项目的路径配置,处理测试用例数据,日志记录,数据库查询)
config层:配置层(环境相关的配置,数据库配置,日志配置)
run_test.py:项目的入口文件
框架中自动化用例的执行流程这边简单介绍一下:
通过自动化框架启动文件运行程序,
首先会去用例数据层存放的文件(excel)中读取用例数据,
然后以数据驱动的模式生成测试用例,
之后将用例加载到测试套件中,
最后执行测试套件中的用例,
生成测试报告以及用例执行的详细日志。
十五、接口的响应时间,多少时间为通过,多少时间不通过
接口测试响应时间都是超级快的,ms 级的
十六、什么样的接口,是个好的接口
功能准确无误,响应速度快,支持多用户并发操作,安全性好
十七、接口出错了怎么办?
1、先检查一下请求参数
2、网络通不通
3、服务器有没有启动
4、开发定位
十八、接口测试用例怎么写?
查看这些接口有哪些参数,每个参数有什么约束条件,正常和异常的响应信息有哪些,然后编写测试用例来覆盖这些需求
十九、支付功能,付款的接口是怎么测试的呢?
工作中的情况