「接口自动化测试」高频面试题!

news2024/9/29 16:34:03

一、json和字典的区别?

  • json就是一个文本、字符串;有固定的格式,格式长的像python字典和列表的组合;以key-value的键值对形式来保存数据,结构清晰,。可以说是目前互联网项目开发中最常用的一种数据交互格式

  • 字典属于python里面的基本数据类型

  • json不属于python里面的基本数据类型

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

  • 对于一些基础数据比如说数据库配置可以放到静态配置配置文件中(日志级别、请求头、请求url、账号密码)

  • 接口测试需要用到的数据可以放到数据库表,也可以放到excel文件中(请求方法、请求数据)

三、什么是数据驱动

  • 数据驱动就是通过excel来维护测试数据,通过相应的技术处理,拿到测试数据用于测试,从而实现测试数据与代码的解耦;

  • 数据驱动测试的本质就是高级的参数化。

四、excel中如何设计你的用例?

  • 所有的接口信息维护在一个excel文件中

  • 每个接口,用一个sheet表维护

  • 接口传递请求参数用data列,通过构造json格式的字符串即可解决多个传参的问题,同时提升了用例的可维护性

五、excel中的数据怎么拿出来?

  • 通过第三方库openpyxl来完成,项目只要引入第三方库,通过它提供的api即可完成对excel的操作,甚至于我们自己也可以做一些二次封装,封装一个读写excel中用例的方法,使得操作更方便。一行数据就是一个用例。

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

  • 通过token来实现鉴权的,那么同样先调用完登录接口–》拿到它返回的这个数据–》存储起来(存储在动态环境变量Envdate中),后面再调用其他接口的时候直接带上这个数据过去就可以了。

  • 把token保存在动态环境变量Envdate中(因为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断言期望值和实际结果是否符合预期。

    • 数据库表数据的验证

  • 做表数据验证要先明白两点:

    • 表数据验证首先得明白这个接口的基本业务,会影响到哪些表,哪些字段的数据,然后才能准备查询sql去有针对性的查数据。

    • 并不是所有用例的执行都会操作数据库,影响到表数据,因此只有影响到了表数据的用例,才准备查询脚本

十二、如何提升测试套件的执行效率(接口测试优化的地方)

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

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

  • excel数据回写,尽量通过批量方式去写。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据集][目标检测]猪数据集VOC-2856张

数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):2856 标注数量(xml文件个数):2856 标注类别数:1 标注类别名称:["pig"] 每个类别标注的框数&#xff1a…

【YOLO目标检测输电线路异物数据集】共4516张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式:YOLO格式 图片数量:4516 标注数量(txt文件个数):4516 标注类别数:4 标注类别名称:nest、kite、balloon、trash 数据集下载:输电线路异物数据集 图片示例 数据集…

华为OD机试 - 箱子之字形摆放(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…

【CodeGlance Pro】Idea升级2024.3代码地图不能使用:“不兼容: 需要 IDE 内部版本 233.*或更低版本”

今天升级了一下idea的版本,原本是idea2023,升级之后发现CodeGlance Pro提示:不兼容: 需要 IDE 内部版本 233.*或更低版本。代码地图不能使用,对于已经习惯了这个工具的开发者而言十分难受。在网上搜了很多也没有找到平替插件。后面…

HTML5实现好看的唐朝服饰网站模板源码2

文章目录 1.设计来源1.1 网站首页1.2 唐装演变1.3 唐装配色1.4 唐装花纹1.5 唐装文化 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh 文章地址:https://blog.csdn.ne…

大模型落地需要一把“梯子”

自ChatGPT横空出世以来,大模型技术如同一股旋风席卷全球科技界。我们亲眼见证了这场革命性变革的演进,从2023年上半年开始,企业和开发者们争相囤积算力、训练模型,掀起了一股“大模型军备竞赛”。而随着时间推移,市场逐…

OpenCV特征检测(9)检测图像中直线的函数HoughLines()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在二值图像中使用标准 Hough 变换查找直线。 该函数实现了用于直线检测的标准 Hough 变换或标准多尺度 Hough 变换算法。详见 http://homepages…

新手向-Java调用C接口

最近工作上需要用java调用C接口,在这里记录一下。 非专业人员,有不同意见欢迎评论区交流。 java调用c接口一般有两种方案,JNI和JNA,JNI性能更好,使用复杂,JNA性能一般,使用简单,这里…

DnsDiag:一款针对DNS的故障排除和安全审计工具

关于DnsDiag DnsDiag是一款针对DNS的故障排除和安全审计工具,在该工具的帮助下,广大研究人员可以轻松检测DNS基础设施的安全性。 你是否曾怀疑过你的 ISP 是否劫持了你的 DNS 流量?你是否曾观察到 DNS 响应有任何异常行为?你是否…

计算机系统的组成

第二章:计算机系统组成 一、信息表示及存储 数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就 成为信息;而信息需要经过数字化转变成数据才能存储和传输。 数据信息分为数值型和非数值型。 计算机能…

4.3章节python中循环结构:两种类型:for 循环和 while 循环用法

Python 中的循环结构主要有两种类型:for 循环和 while 循环。每种循环都有其特定的使用场景,允许你根据需要重复执行代码块。 一、遍历循环for语句 for 循环用于遍历任何序列(如列表、元组或字符串)或其他可迭代对象 (1)for 循环…

【Mysql】数据库基本操作-----DML

1、基本操作 DML是数据操作语言,英文全称是:Data Manipulation Language,用来对数据库中的数据记录进行更新。 关键字: (1)插入insert (2)删除delete (3)更新upda…

element的描述列表<el-descriptions>添加字典翻译功能

标题1 可以利用对象赋值进行翻译功能: HTML代码: <el-descriptions border :column"2" direction"vertical"><el-descriptions-item label"单位类别">{{companyTypeFormat(viewForm.companyType?viewForm.companyType:)}}</el-…

【AI变现】探索AI领域的财富密码:5大AI变现路径解析

随着现代科技的高速发展&#xff0c;AI已经不只是一个概念工具&#xff0c;它正在深刻地改变着我们的生活方式、工作模式和商业模式。 在这个AI无处不在的时代&#xff0c;如何抓住机遇&#xff0c;利用AI技术创造财富&#xff0c;成为了许多人关注的焦点。 接下来&#xff0…

2.5 有限冲激响应(FIR)滤波器

2.5 有限冲激响应&#xff08;FIR&#xff09;滤波器 2.5 有限冲激响应&#xff08;FIR&#xff09;滤波器 在此阶段&#xff0c;我们知道&#xff0c;大多数实际感兴趣的信号可以看作是不同频率下振荡的复数正弦波的总和。这些正弦波的幅度和相位决定了该信号的频率内容&…

苏州 工业三维动画制作「世岩清上」一站式可视化营销服务商

在现代工业设计和营销中&#xff0c;三维动画已成为一种重要的视觉传达工具。它不仅能够直观展示产品的外观和功能&#xff0c;还能通过动态演示来增强观众的理解和体验。本文将深入探讨工业三维动画制作的关键点&#xff0c;包括产品动画和场景动作的制作技巧。 产品动画制作…

数据结构实验二之栈和队列(上)——环形队列和链队

实验题3:实现环形队列的各种基本运算的算法 题目描述 编写一个程序sqqueue.cpp,实现环形队列(假设栈中的元素类型ElemTye为char)的各种基本运算,并在此基础上设计一个程序exp3-3.cpp完成以下功能。 (1)初始化队列q。 (2)判断队列q是否非空。 (3)依次进队元素a、b、c。 (4)出队…

【工具变量】无废城市试点DID数据集(2000-2023)

数据简介&#xff1a;2018年&#xff0c;国务院办公厅发布了《“无废城市”建设试点工作方案》&#xff0c;明确了“无废城市”的概念&#xff0c;强调通过创新、协调、绿色、开放的理念&#xff0c;推动城市固体废物管理的综合改革&#xff0c;力求实现固体废物产生量最小、资…

AI新方向:OpenAI o1是一个更擅长思考的模型系列:高级推理+逻辑严密+更广泛的知识,用于解决复杂的逻辑问题,慢思考

之前推出AI store感觉偏应用&#xff0c;也千篇一律&#xff0c;是AI的一个方向&#xff1a;广度。 现在推出o1 更严密的逻辑&#xff0c;也是AI的一个方向&#xff1a;深度。花更多时间&#xff0c;推理复杂的任务并解决比以前的科学、编码和数学模型更难的问题。确保AI的使用…

大模型训练技术:使用QLM提升Qwen2-7B 128k训练效率3.4倍

大模型训练技术&#xff1a;使用QLM提升Qwen2-7B 128k训练效率3.4倍 原创 一、引言 自Transformer架构问世以来&#xff0c;大模型领域的进展如火如荼&#xff0c;短短几年内&#xff0c;模型参数规模已攀升至天文数字&#xff0c;轻松跨过万亿门槛。面对如此庞然大物&#…