接口/自动化面试题及答案

1、get和post的区别?

http是上层请求协议,主要定义了服务端和客户端的交互规格,底层都是tcp/ip协议

Get会把参数附在url之后,⽤?分割,&连接不同参数,Get获取资源,post会把参数放置在http请求体中,Post发送请求数据

Get产⽣⼀个tcp数据包,post产⽣两个tcp数据包

Get请求,浏览器会把http header和data⼀起发送,服务器返回200响应码

Psot请求,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器返回200响应码

Post的安全性⽐get⾼,如果浏览器缓存了,会把get参数留在缓存中,⽤户可以看到参数信息

2、post请求的四种参数形式是什么?

Application/x-www-form-urlencoded:将参数以⼀组键对值的⽅式发送

Multipart/form-data:⽀持单组和多组⽂件上传

Application/json:根据后端接⼝的定义⽀持数据类型

Text/xml

3、http状态码302, 403, 503分别代表什么?

302:临时重定向到某⼀个页⾯,⽐如要登录之后才能进⼊的页⾯,他⾸先会临时重定向到登录界⾯

403:权限不够 服务器理解客服端的请求,但拒绝此请求

503:服务端⽬前⽆法使⽤,过载或者维护中

500:服务端异常

404:请求失败,请求所希望得到的资源未被在服务器上发现

401:请求⾝份验证

1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理

2XX系列:代表请求已成功被服务器接收、理解、并接受。这系列中最常见的有200、201状态码。

3XX系列:代表需要客户端采取进⼀步的操作才能完成请求,这些状态码⽤来重定向,后续的请求地址(重定向⽬标)在本次响应的

Location 域中指明。这系列中最常见的有301、302状态码。

4XX系列:表⽰请求错误。代表了客户端看起来可能发⽣了错误,妨碍了服务器的处理。常见有:401、404状态码。

5xx系列:代表了服务器在处理请求的过程中有错误或者异常状态发⽣,也有可能是服务器意识到以当前的软硬件资源⽆法完成对请求的处理。常见有500、503状态码。

4、自动化测试怎么校验结果?

断言 ,预期结果与实际结果对比

数据库校验,根据测试场景来查询数据库里的数据和请求之前的数据进行比对。

5、接口测试如何设计用例?

主要从四个方面来设计接口用例:功能,业务逻辑,异常,安全。

功能:是否符合需求

1)从用户角度出发看接口能否实现业务需求,功能是否正常;

2)功能是否按照接口文档实现:

举例:比如博客园添加随笔,需要登录才能添加。也就是业务要求不支持游客添加随笔功能,如果设计一个没有登录的用户,然后去测试添加随笔接口,结果接口能添加到随笔,说明功能不正常,不符合需求和接口文档描述。

业务逻辑:是否依赖业务

1)接口实现逻辑:

2)业务逻辑覆盖(语句/条件/分支/判定/….);

举例:该接口调用之前,需要调用登录接口,如果不登录也能请求数据,不符合业务逻辑。

异常:参数异常和数据异常

1)参数异常:关键字参数,参数为空,多,少参数,错误参数;

2)数据异常:关键字数据,数据为空,长度不一致,错误数据:

举例:不管数据异常还是参数异常,测试点差不多,一个参数有kev和valuekev表示参数,value表示数据。第一看看参数和数据能不能支持关键字,例如Java中的保留关键字等等;第二就是参数和数据都为空,看看是否做了判断:第三,参数多和少,例如有两个参数的接口,需要设计一个包含三个参数的用例,一个只有一个参数的用例。数据长度不一致,例如设计很长的字符串是否支持,因为数据库创建表过程都设置好了每个字段的长度。输入错误的参数和数据,如故意输错单词等等。

安全测试用例设计:

1)cookie:有cookie才能获取数据,如果不带cookie还有信息返回,说明有问题

2)header:正常接口带header信息,删除header看是否能够返回数据

3)唯一识别码:app手机识别码,一般是唯一的;

4)文本输入框sal注入和xss攻击。

6、接口自动化测试的流程?

基本的接口功能自动化测试流程为:需求分析–>用例设计–>脚本开发–>测试执行–>结果分析

7、⾃动化使⽤的测试框架是什么?简述⾃动化框架的设计、维护

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信息

断⾔

好处:

1、⾃动化测试⽤例和⼿⼯测试⽤例的完美结合,减少重复⼯作

2、配置灵活,可以⾃主切换测试环境,执⾏测试⽤例

3、常⽤功能进⾏封装,逻辑清晰,易于维护

4、统⼀执⾏⼊⼝,管理测试⽤例集:

run.py模块通过模糊查找来选择需要执⾏的测试⽤例

5、持续集成,定时构建,快速反馈、

8、具体的在这个项⽬中⾃动化怎么应⽤到实际的,您对⾃动化结果的分析

完成所有的⾃动化测试框架的设计和实现后,进⾏接⼝测试,然后集成到jenkins,配置定时执⾏,⽣成html报表,查看测试通过率,查看接⼝的功能

每次发版时,进⾏回归测试,新功能开发未提测前

9、做好测试计划的关键是什么?

明确测试⽬的,增强测试计划的实⽤性,保证测试⽤例的实⽤性和覆盖率,完全需求⽂档和规格指标书等,严格界定测试周期,测试轮次,测试覆盖模块等

10、测试⼯程师职业发展路线图

功能测试 ——接⼝测试–⾃动化测试 --测试开发–测试架构师

  • 2
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python接口自动化测试面试: 1. 请介绍一下接口自动化测试的概念和意义。 接口自动化测试是指利用自动化工具通过发送HTTP请求和验证响应来自动化执行接口测试的过程。它的意义在于提高测试效率、减少人工测试的工作量、提升测试的准确性和可重复性。 2. 请说明Python在接口自动化测试中的优势。 Python在接口自动化测试中有以下优势: - 简单易学:Python语法简洁明了,相比其他编程语言更易上手,减少学习成本。 - 强大的第三方库支持:Python拥有丰富的第三方库(例如requests、unittest、pytest),能够满足接口测试的绝大部分需求。 - 优秀的文档和社区支持:Python有完善的文档和庞大的开源社区,可以快速解决问和获取案例。 - 丰富的测试框架和工具:Python提供了多种测试框架和工具(例如unittest、pytest、HttpRunner),便于开展接口自动化测试。 3. 请列举一些常用的Python库或工具来实现接口自动化测试。 常用的Python库和工具有: - requests:用于发送HTTP请求并获取响应,可以实现接口的调用和验证。 - unittest:Python的标准测试框架,可以进行接口测试的断言和结果判断。 - pytest:功能强大的第三方测试框架,支持参数化和插件扩展,适用于大型和复杂的接口自动化测试。 - HttpRunner:一个基于Python的接口自动化测试框架,支持编写接口测试用例和生成测试报告。 - Beautiful Soup:用于解析HTML和XML文档,对于接口返回的HTML或XML数据进行解析和提取。 - PyYAML:用于解析和生成YAML格式的数据,适用于接口测试数据的读写和管理。 这些工具和库的使用可以帮助我们更便捷地实现接口自动化测试,提高测试效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值