💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
本人主要分享计算机核心技术:系统维护、数据库、网络安全、自动化运维、容器技术、云计算、人工智能、运维开发、算法结构、物联网、JAVA 、Python、PHP、C、C++等。
不同类型针对性训练,提升逻辑思维,剑指大厂,非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。
数字化飞速发展,接口安全问题层出不穷,不仅关系到产品的稳定性,更关乎到用户的信息安全。
今天,分享一些在面试中可能会遇到的接口安全测试面试问题,助你在面试中从容不迫。
1、接口自动化能做什么?
自动准备初始化数据
- 自动执行测试用例
- 自动验证接口返回结果的正确性
- 自动验证数据库数据的正确性
- 自动生成测试报告
2、test与json()区别
# 如果响应类型是text/html,只能使用res.text查看响应正文(如果使用res.json()会报错)
# res.text看到的内容是开发人员写的代码的原始样式(接口中汉字会显示为unicode编码,这种属于json字符串)
# res.json()会对json字符串进行格式化(统一格式),所有键用单引号定界,冒号后面加一个空格,逗号后面加一个空格
# 如果响应类型是application/json(简称json),使用res.text
res.json()都可以,但是常用res.json()
# res.text的结果是字符串格式,res.json()的结果是字典格式
# r.text 获得响应文本,字符串格式,空为null,真为true
# r.json()获得响应文本,字典格式 ,空为None,真为True
将来测试时:比对实际结果和预期结果时,使用true还是True,或者使用null还是None,取决于用的是text还是json()
3、result.text 与 result.json()**区别**
- 如果响应类型是text/html,只能使用result.text查看响应正文
- 如果响应类型是application/json,使用result.text和result.json()都可以
- result.text是字符串类型,result.json()是字典类型
4、cookie和session的区别?
- cookie数据放在客户的浏览器上,也就是客户端,session数据放在服务器上
- cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
- session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器的性能
- 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
- 可以将登录信息等重要信息存放为session,其他信息需要保存可以放在cookie
5、Post发送数据类型(常见的post提交数据方式)
- 表单数据类型:application/x-www-form-urlencoded,默认使用的类型
- JSON类型:application/json
- form-data类型:multipart/form-data,一般用于上传文件
- text/xml
6、如何验库?
- 也叫落库检查,就是检查数据库数据的正确性
- 选择适当的方式编写代码
面向过程编程
- 线性编码、函数封装
面向对象
模块
包
框架(pytest/unittest)
- 部署测试系统
- 服务器、linux操作系统、Docker容器
- 服务器应用搭建:MySQL、Redis、Tomcat、JDK等
- 执行测试
- 执行测试代码
- 记录测试日志
- 生成测试报告
7、接口自动化测试的具体编码步骤是什么?
- 数据库初始化
- 是对前置条件的落实、
- 准备测试数据。设计数据库的增删改查操作
- 执行测试用例
- 执行接口测试用例就是发送请求
- 比对测试结果
- 判断接口返回的响应结果的正确性
- 落库检查
- 判断数据库数据的正确性,涉及到数据库的检查操作
8、发送请求的要点或步骤
- 导入requests库
- 选择请求方法
- 指定接口地址
- 指定请求参数
- 发送请求,获取响应
- 查看响应结果
- 比对响应结果
- 接口返回的值是实际结果,用例中有预期结果
- 比对结果就是看实际结果和预期结果是否匹配
9、落库检查的步骤是什么?
- 连接数据库
- 创建游标
- 指定查询实际结果的SQL语句
- 获得SQL语句
- 获取实际结果
db_actual = cursor.fetchone()
#获取游标中的第一行数据,存到元素db_actual中
- 结果比对
- 关闭数据库
10、如何造数?
- 自动化测试中,造数一般是通过编写SQL语句,用户层序执行SQL语句来实现
- 可以在写一条用例同时编写造数SQL语句,也可以在用例通过评审后在编写造数SQL语句
- 可以单独使用一个文件存储造数SQL语句,也可以将造数SQL语句写到测试用例中
- 可以将一个项目的所有造数SQL语句写到一个文件夹中,也可以按照模块或接口把造数分别写在多个文件中
11、如何读取文本文件?
- 打开文件读取数据
自定义文件名 = open("文件名","r","encoding='utf-8'")
12、读取excel步骤?
1、安装pandas、openpyxl
2、导入pandas
3、读文件
4、转换某些列的数据类型
5、合并列、删除列
6、DataFrame对象转列表
13、如何读excel文件?
data=pandas.read_excel('excel文件