Python接口测试题(持续更新中)

1、json和字典的区别?

Json是轻量级的数据交互格式,以key-value的键值对形式来保存数据,结构清晰,可以说是目前互联网项目开发中最常用的一种数据交互格式。
字典,同样是以key-value的键值对来保存数据,是python中的一种数据类型。

2、你做接口自动化测试时,测试数据放哪里?
1) 对于一些基础配置比如数据库配置可以放到properties文件(yaml文件,没用过就别拓展了)
2) 接口测试需要用到的数据可以放数据库表,也可以放到excel中。

3、什么是数据驱动?
数据驱动就是通过excel,或者xml,数据库等数据结构来维护测试数据,通过相应的技术去处理,拿到测试数据用于测试,从而实现测试数据与代码的解耦,数据驱动测试的本质是高级的参数化。

4、excel中如何设计你的用例?
1) 所有的接口信息维护在一个表单
2) 关于接口的用例数据维护在一个表单
3) 接口传参一列来传,通过构造json格式的字符串即可解决传多个参数的问题,同时提升了用例的可维护性

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

6、如果有些接口做了鉴权(需要鉴定权限),怎么实现这些接口的自动化测试?
首先需要明确接口是通过什么机制来实现的鉴权
如果是通过会话id(123456)来实现鉴权的,那么先调用完登录接口,拿到它返回的这个数据,存储起来,后面再调用其他接口的时候直接带上这个数据过去就可以了。
如果是通过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接口还未提供给你,如何处理?
通过mock框架搭建自己的mock系统/平台(其实就是自己开发接口),模拟这个第三方接口mock一个出来即可,这样就解决了这个依赖。

10、接口测试的垃圾数据如何清理?
可以自己准备单独的环境(独立的数据库),这样接口调用产生的数据可以在整个套件执行完后(@AfterSuite)通过执行sql脚本来完成数据删除。

11、你做接口自动化,项目用的是什么数据库,用什么来操作的这个数据库?
Mysql,可以通过jdbc来实现数据库的增删查改等操作。

原文地址:https://www.cnblogs.com/Christalccc123/p/12426359.html

时间: 2024-07-30 07:32:53

Python接口测试题(持续更新中)的相关文章

Python拾遗(持续更新中)

虽然曾经使用Python做过几个小网站的后台,但未能触及Python的方方面面.本次参加51cto网的老男孩Python运维课程,来查漏补缺. 本篇博文将会持续更新,不断加入本人遗漏的Python知识点. 4月5日-4月11日: 在Linux下,使用 #!/usr/bin/python3 或者 #!/usr/bin/env python3 来指定改Python程序运行时使用的python版本 使用 type(变量名) 查询变量类型.存在 type(a) == str 这种用法. 使用 id(变量

Python练习题(持续更新中)

第一题 使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和. #方法一 #从2开始计算 i = 2 #定义一个变量用于保存结果 sum=0 while i <= 100: if i % 2 == 0: sum = sum + i else: sum = sum - i i += 1 print("2-3+4-5+6...+100=",sum) #方法二 n=3 sum=2 while n<=100 : #n对2取余 if n % 2 !=

Hello World!的各种编程语言程序(持续更新中……)

对于很多学习编程语言新手们,可能接触到的第一个程序就是"Hello World"的输出程序,笔者想在此篇简短的博文中介绍关于各种编程语言的"Hello World"输出程序. 至今,笔者仅仅接触过C++和Python两种编程语言,而且都仅仅是新手,所以此次只能写C++和Python两种语言的"Hello World"输出程序,但此篇博文会随着笔者学习的编程语言种类的增多而不断完善. 1. C++语言 #include<iostream>

ansible部署及应用--持续更新中

1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操作的主机

python tips(持续更新)

1. 引用上一层目录 import syssys.path.append('..')import xx 2. python json JSON是一种轻量级的数据交换格式.可以解决数据库中文存储问题,对象序列化问题,等等. import json encodedjson = json.dumps(obj) decodejson = json.loads(encodedjson) 非常简单. 3. 静态方法 在函数前面@staticmethod @staticmethod def func(): p

Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...)

前言 "条条大路通罗马."工作中,实现某个需求的方式往往不是唯一的,这些不同实现方式不仅表现在代码质量上,还影响着我们的工作效率.就像,在 Android 系统中,总有那么一些鲜为人知的 API 能够减少我们很多零碎的工作量.于是,就想凭着一些经验,整理一些常用的,找个地方归纳总结,也供日后翻阅. getResources().getIdentifier(String name, String defType, String defPackage) 根据资源名称获取资源 id.正常情况

【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包含:数组类.浏览器类.日期类.函数类.数学类.媒体类.节点类.对象类.字符串类.类型检测类.正则表达式类等内容. 使用方法 1. 引入Bable transpiler以保证支持ES6 <script type="javascript/text" src="./browser

linux学习资料持续更新中

一.LINUX基础教程 1.老男孩系列免费视频: 1) linux高薪入门实战视频教程(第二部)老男孩linux教程 http://edu.51cto.com/course/course_id-1035-page-1.html 2) 跟着老男孩从0开始一步步实战深入学习linux运维(三) http://edu.51cto.com/lesson/id-11909.html linux学习资料持续更新中,布布扣,bubuko.com

阿里笔试题(2015)持续更新中

第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题 废话不多说,直接上题和答案 平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,但他们不一定出去,注意是平均时间,所有博物馆最少应该容纳500人 双向循环列表,从任何一个元素开始可以遍历全部元素 先和后面的元素相连 s->next=p->next; p->next->pre

Atom使用记录(持续更新中)

部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进行搜索就行. minimap: 为Atom加上一个代码预览地图,就想sublime中右侧的缩略图一样,效果如图. Emmet(和sublime一样的) simplified-chinese-menu:Atom的简体中文语言包,完整汉化,兼容所有已发布的版本Atom. autoclose-html:h