接口自动化面试

一、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.如何开展的接口自动化,框架是本身搭建的吗?

相关文章
相关标签/搜索