一、get和post的区别?html
l http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议python
l Get会把参数附在url以后,用?分割,&链接不一样参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据mysql
l Get产生一个tcp数据包,post产生两个tcp数据包sql
l Get请求,浏览器会把http header和data一块儿发送,服务器返回200响应码数据库
l Psot请求,浏览器先发送header,服务器响应100(continue),而后再发送data,服务器返回200响应码json
l Post的安全性比get高,若是浏览器缓存了,会把get参数留在缓存中,用户能够看到参数信息后端
二、post请求的四种参数形式是什么?数组
Application/x-www-form-urlencoded:将参数以一组键对值的方式发送浏览器
Multipart/form-data:支持单组和多组文件上传缓存
Application/json:根据后端接口的定义支持数据类型
Text/xml
三、http状态码302, 403, 503分别表明什么?
302:临时重定向到某一个页面,好比要登陆以后才能进入的页面,他首先会临时重定向到登陆界面
403:权限不够 服务器理解客服端的请求,但拒绝此请求
503:服务端目前没法使用,过载或者维护中
500:服务端异常
404:请求失败,请求所但愿获得的资源未被在服务器上发现
401:请求身份验证
1XX系列:指定客户端应相应的某些动做,表明请求已被接受,须要继续处理
2XX系列:表明请求已成功被服务器接收、理解、并接受。这系列中最多见的有200、201状态码。
3XX系列:表明须要客户端采起进一步的操做才能完成请求,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。这系列中最多见的有30一、302状态码。
4XX系列:表示请求错误。表明了客户端看起来可能发生了错误,妨碍了服务器的处理。常见有:40一、404状态码。
5xx系列:表明了服务器在处理请求的过程当中有错误或者异常状态发生,也有多是服务器意识到以当前的软硬件资源没法完成对请求的处理。常见有500、503状态码。
四、公司有用到第三方服务,出了问题,打电话给第三方,第三方不认可,这时候日志又显示不到错误,应该怎么处理?
1/ 单独调用第三方服务,查看三方接口返回的status,code,msg,看是否能支持正常服务
2/ 在本身的应用中mock第三方服务,来调用本身的接口,看可否正常工做,将结果反馈给第三方
3/ 配置日志级别在debug级别时,添加第三方请求过程的日志,查看入参,响应来追踪问题
五、接口自动化中的关联怎么处理?
把上一个请求返回的结果传入到下一个请求的参数中,将请求的结果反射到一个类属性(使用setattr()函数),下一个请求去调用这个类属性
六、自动化测试怎么校验结果?
断言 ,预期结果与实际结果对比
数据库校验,根据测试场景来查询数据库里的数据和请求以前的数据进行比对
七、自动化使用的测试框架是什么?简述自动化框架的设计、维护
1/测试框架:python+unittest+requests+ddt+openpyxl+pymysql+logging
测试框架:
python:入门简单,语法简洁
unittest :定义一个测试用例类,具体的方法来维护测试用例的生命周期,测试场景行为,测试用例 前置场景,行为,指望结果,实际结果,断言方法,Setup teardown方法
requests:接口调用 ,支持http请求的库,API 简洁,提供不一样的http请求方法,支持session,cookies,
ddt :数据驱动,ddt 类装饰器,data 测试方法装饰器 unpack解包可迭代的数据类型
普通用户,数据库,配置文件---(基础数据)
openpyxl: 数据管理 excel管理数据,使用openpyxl模块来进行excel数据的读和写(excle,csv, json, yaml, txt均可以管理测试数据)
pymysql:数据库交互,数据校验
eval,json:数据格式的转换 Eval将python支持的格式转换成对应的格式
logging:日志处理, 统一日志输出格式,渠道,级别,执行结果的记录,便于定位问题
jenkins:持续集成
2/框架设计思路:数据驱动+结构分层(可读性,可维护性,可扩展性)
数据驱动:将维护数据与代码分离,接口调用行为一致,针对不一样的参数组合驱动不一样的测试场景,减小代码冗余
结构分层:数据层+用例层+逻辑层
数据层:测试数据的支撑 data.xls
用例层:用例的执行 test_register.py test_recharge.py
逻辑层:公用的方法的封装与提取 doexcle.py do_mysql.py http_requests.py logger.py等模块
3/框架设计步骤:
准备测试数据: EXCEL表准备测试用例---excel数据的读取---参数值的替换
发起请求:请求方法(get/post方法进行封装---URL的拼接(不一样---参数转化为字典
拿到请求的返回值:解析返回值code,status,msg信息
断言
好处:
一、自动化测试用例和手工测试用例的完美结合,减小重复工做
二、配置灵活,能够自主切换测试环境,执行测试用例
三、经常使用功能进行封装,逻辑清晰,易于维护
四、统一执行入口,管理测试用例集:
run.py模块经过模糊查找来选择须要执行的测试用例
五、持续集成,定时构建,快速反馈
八、具体的在这个项目中自动化怎么应用到实际的,您对自动化结果的分析
完成全部的自动化测试框架的设计和实现后,进行接口测试,而后集成到jenkins,配置定时执行,生成html报表,查看测试经过率,查看接口的功能
每次发版时,进行回归测试,新功能开发未提测前
九、作好测试计划的关键是什么?
明确测试目的,加强测试计划的实用性,保证测试用例的实用性和覆盖率,彻底需求文档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等
20200617天喻软件初面:
1.post,get请求的区别
2.接口测试用例的重点
3.接口之间的关联怎么作
4.cookies怎么存储
5.并发时,cookies,token如何处理
6.三方接口故障时,如何处理
7.如何开展的接口自动化,框架是本身搭建的吗?