首页 > 其他分享 >接口自动化测试面试题

接口自动化测试面试题

时间:2022-10-25 11:33:10浏览次数:53  
标签:面试题 请求 json 接口 token 自动化 数据 鉴权

1 json和python中字典的区别?

  字典是一种数据类型,而json不是,json是一种数据交换格式,但他又类似与字典,都是key/values储存,所以json和字典可以相互转化,json.lodes() 、json.domps()

2 你做接口自动化测试时,测试数据放哪里?

  1.将测试用例中用到的固定测试数据放在excel文档中
  2.将测试用例中不固定的测试数据,例如手机号码,使用redome函数自动生成
  3.数据库的一些配置和接口的通用地址放在ini配置文件中

3 什么是数据驱动?

  将测试数据统一存放在Exele中,封装一个读取excle的类,将读取到的数据使用ddt装饰器,运用到测试用例上。将数据维护到excle中方便维护,与代码实现了解耦。

4 excel中如何设计你的用例?

  将所有接口数据全部维护到一个文档中,一个接口一个sheet。一般字段包含:序号,标题,请求地址,请求方式,请求参数,预期结果,提取数据,数据库查询语句5excel中的数据怎么拿出来?使用openpyxl第三方库,先读取首行标题用作字典的key值,在读取后面的每行用作vlaue值,将每一条用例以字典的形式存放,再以列表的形式存放同一接口下的所有用例。

6 如果有些接口做了鉴权(需要鉴定权限),怎么实现这些接口的自动化测试?

  首先确定鉴权方式,找开发了解一下系统的鉴权方式,按照将上一个接口的响应数据提取用来发送下一个接口使用的参数的思想。在exelc文档中写入登录接口写入token或session的jsonpath表达式,发送登录接口请求,从响应头或响应结果中利用jsonpath表达式提取到token或者session值,将token或者session值使用setattr()方法存放在一个零时类中。,发送另一个请求时,从零时类中使用getattr()方法获取到值,将值添加到请求的头部。

7 什么是会话?

  session是一种缓存技术,用户登录系统,一般就把信息保存到session中,然后把sessionid返回,因此大部分系统都会用到session机制来实现鉴权。Session保存数据方式也是以key-value的形式。

8 什么是token?

  token就是用户登录后,服务器返回的一段文本,生成的算法需要找开发了解,一半时唯一的,每次服务器返回的数据都不是唯一的。Token也可以用来鉴权是因为用户登录后,服务器生成token信息,用户拿着用户的编号做了一个映射,将映射储存早redis当中,然后再返回这个token给客户端。客户端再次需要鉴权的时候,只需要将缓存的token带去验证,服务器判断此用户id时候已经授权过了。

9 某个接口请求,参数依赖上个接口的返回数据,怎么处理(接口关联)?

  在exelc文档中写入登录接口写jsonpath表达式,发送登录接口请求,从响应头或响应结果中利用jsonpath表达式提取到值,使用setattr()方法存放在一个零时类中。发送另一个请求时,从零时类中使用getattr()方法获取到值,将值添加到请求数据中。

10 接口测试的垃圾数据如何清理?

  自己使用以及的测试环境个测试库,用完后自己写sql清理就可以了,如果说有像对应的删除接口,也可以调用接口删除
如果是搭建好的测试环境,需要专门的测试人员去清理数据,如果说有像对应的删除接口,也可以调用接口删除,当然如果有权限并且允许删除的清康下,也可以写sql删除的,一般数据库不会给留删除权限。

11 做接口自动化时怎么做的数据验证?

  结果对比:获取excle的预期结果与实际接口请求的数据做对比,使用asser

  数据库对比:一般对数据库有座更改的情况下需要进行sql验证"

12 如何提升测试套件的执行效率?

  1.减少excel读写,减少不必要的io操作

  2.excel数据读取测试数据,全部存储到静态变量中。

13 你用过单元测试框架吗,是什么框架,有哪些常用操作?

pytest

  fixtrue()、parametrize() 、asser、python.main(""-s"",""-v"")、aller
  unittest
  derndown、setup、allernotequest、ddt

14 说说你对接口的理解?

  接口是服务,是功能点实现,是数据传递的通道,也是服务器端的一个实现了某种协议(比如http协议..)和映射机制(当访问一个url时就会通过服务器端的映射处理机制解析后,落到对应的处理函数)的函数,接口参数就是函数的参数,接口的响应数据就是函数的返回值

15 请简单说一说get、post这两种请求方法的区别?

  get
  1.一般用来获取数据
  2.容量小,200k
  3.链接中是以key=value的形式拼接
  4.不安全,数据都可以看见
  post
  1.一般用来发送请求
  2.容量大
  3.一般将数据放在请求体上
  3.安全

16 在浏览器中输入URL,回车之后发生了什么?

  输入url后,浏览器会解析,查询是否有缓存,没有就建立TCP链接,将解析的数据发送给服务器,服务器返回数据,并且添加缓存,前端渲染html页面。

17 接口测试的框架搭建?

  使用的是分层设计的思想:
    1.公共使用层 -
      handleconfig:configparser读取配置文件confparser文件read 方法
      mylogger:logger日志输出:重新配置日志级别:默认funaction改为level
      handledata:临时数据储存,创建一个默认的类EnvData,清理类中的临时数据
      handlerequest:请求分装,1.确认鉴权方式 2.请求头信息 3. 请求体格式
      handlemydb:pymysql
      handlepath:
      handleexcle:openpyxl
    2.配置层 - .ini:日志配置信息、数据库信息、请求地址、登录信息
    3.输出层 - 日志、报告
    4.用例层 - 编写用例
    5.数据层 - 存放数据信息
    6.main.py文件 - 运行文件:BeautifulReport测试报告 unittest.testloder().discover"

18 正则表达式

  re.findall()返回所有匹配到的数据
    1. .匹配所有 除了/n
    2. *匹配0次或者多次
    3. ?非贪婪模式
    4. +一次或者多次
    5. I或,左表达式或右表达式

19 json数据提取 jsonpath.jsonpath()

  &根目录
  ..深层扫描
  *通配符
  .子节点"

标签:面试题,请求,json,接口,token,自动化,数据,鉴权
From: https://www.cnblogs.com/Happy-Girl-T/p/16824313.html

相关文章

  • ui自动化测试面试题总结
    1UI自动化框架如何让搭建?首先按照Po模式搭建自动化框架,搭建框架使用的技术是selenium+pytest,将框架分为6层,common层(公共层:basepage[基础操作封装]、hander_config......
  • 国网B接口资源上报(Push_Resourse)接口描述和消息示例
    上篇blog,梳理了国网B接口的REGISTER接口描述和消息示例,前端系统加电启动并初次注册成功后,向平台上报前端系统的设备资源信息(包括:视频服务器、DVR/DVS、摄像机、告警设备、环......
  • 腾讯前端常考vue面试题整理
    什么是mixin?Mixin使我们能够为Vue组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项,例如生命周期hook、方法等,则可以将其编写为mixin,并在......
  • 针对小程序wx.getUserProfile接口将被收回后做出的授权调整
    小程序文档中提出的调整说明调整说明:自2022年10月25日24时后(以下统称“生效期”),用户头像昵称获取规则将进行如下调整:自生效期起,小程序wx.getUserProfile接口将......
  • 百度前端高频react面试题总结
    可以使用TypeScript写React应用吗?怎么操作?(1)如果还未创建CreateReactApp项目直接创建一个具有typescript的CreateReactApp项目:npxcreate-react-appdemo-......
  • 创建线程的方式三:实现Callable接口
    packageA_ShangGuiGu.Thread.ThreadTest;importjava.util.concurrent.Callable;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.FutureTa......
  • Go:一文玩转接口
    接口的基本剖析packagemainimport"fmt"typeTestinterface{ show()}typemyStringstringfunc(mysmyString)show(){ fmt.Println(mys)}funcmain......
  • 5.List源码面试题集锦
    1.新建一个ArrayList,现在add一个值,此时数组的大小是多少?下一次扩容前最大可用大小是多少?答:此处数组的大小是1,下一次扩容前最大可用大小是10。因为ArrayList无参构造器初始......
  • 接口如何体现多态性
     如调用时Computuercom=newComputer();Flashflash=newFlash();com.transform(flash);  publicvoidtransform(USBusb){ //此时相当于USBu......
  • python之第三方库netifaces库:netifaces 模块用于提供有关网络接口及其状态的信息(①获
    前言1、 在系统运维等过程中,网络永远是离不开的话题。网络中比较基础的是网络接口,每个网络接口都有一个名字,并且有它的ip地址,还有关于从这个接口出去的包的路由。我们可......