zoukankan      html  css  js  c++  java
  • 接口测试简答

    一、为什么要做接口测试

    接口可以理解成是不同系统或模块之间资源交流方式。

    主要是为了发现前端未做控制的数据传输

    二、接口测试能发现哪些问题

    1、传输金额时是否做负数控制

    2、个别接口是否做登录控制(请求头)

    3、传入置顶type之外的type值,是否做控制

    4、必填参数不填是接口是否做校验

    三、接口测试的必要性

    1、可以发现很多在页面上操作发现不了的bug

    2、检查系统异常处理能力

    3、检查系统的安全性、稳定性

    4、前端随便变,接口测好了,后端不用变

    5、可以测试并发情况,一个账号,同时对最后一个商品同时下单,或不同账号对最后一个商品下单

    6、可以修改请求参数,突破前端页面输入限制

    四、接口测试怎么测

    通过性验证:接口功能正常,按照指定参数正常输入,是否可以返回正确的结果

    参数组合:个别字段代表输入1时,A字段必填。输入2时,B字段必填

    接口安全:

    1、绕过验证:一个商品将对应的商品价格做更改看是否交易成功

    2、绕过身份验证:主播权限解散包厢,普通用户不可解散

    3、参数是否加密:个别查询接口需要做加密处理,看是否有加密

    4、密码安全规则。

    异常验证:必传非必传、参数类型、入参长度(看是否有异常返回值)

    性能测试:

    接口并发情况,接口响应时间

    五、用什么工具测接口

    Postman:免费,简单

    Jmeter:配合断言,但测试报告要做二次开发

    自己写代码:python request,un

    六、WebService接口是如何测试的(用SoapUI)

    七、没有接口文档如何做接口测试,呵呵呵

    1、先跟开发沟通,整理接口文档

    2、抓包看接口请求参数,不懂问开发

    八、在接口测试中,上下游接口有数据依赖怎么处理

    全部变量,

    九、依赖第三方数据的接口如何测试(MOCK)

    【https://www.cnblogs.com/yoyoketang/p/9348552.html】

    十、当一个接口出现异常,你是如何分析异常的

    1、抓包,设置代理看请求

    2、查看后端日志,xhell连上服务器,查看日志

    十一、如果模拟弱网测试

    1、工具模拟。

    十二、如何分析一个bug是前端还是后端

    看请求报文,对照接口文档看是否有问题,前端传都数据是否不对,返回报文不对后端问题

    十三、我们测试的接口属于哪一类?

    通常是B/S架构,由客户端调用,或模拟客户端向服务器提供请求接口,由服务器完成处理并返回一个应答的过程

    十四、HTTP接口传递数据最常用的方式?

    get和post最常用

    get是从服务器上获取数据,post是向服务器上传送数据

    十五、依赖于登录的接口如何处理

    session、cookies

    十六、测试的数据你放在哪里?

    1、一次性消耗的数据,随机函数

    2、一个接口多组测试参数,参数化,数据放text,json,excel

    3、反复使用的数据,放数据库,每次数据初始化

    4、对于邮箱配置的一些参数,用ini配置文件

    5、独立的接口项目,用excel/csv管理测试的接口数据

    6、对于账号密码,这种管全局的参数,用命令行参数,配置在ini

    7、少量静态数据,写到python脚步开头

    十七、json和字典的区别

    json:是一种轻量级的数据交换格式,本质还是字符串

    十八、不可逆操作如果处理。比如删除

    数据库改字段状态。

    十九、一个订单的几种状态如何全部测到。

    造数据,改数据库状态

    二十、python如何连接数据库操作

    pymysql

    二十一、自动化使用的测试框架是什么?简述自动化框架设计、维护

    1、自动化使用的测试框架:

    语言:python

    测试框架:unittest(assertEqual,assertTure,assertFalse)

    接口调用:requests

    数据驱动:ddt(装饰器)

    数据管理:openpyxl(excel、CSV、json、yaml、txt)

    数据库交互:pymysql

    数据格式的装换:eval,json

    日志处理:logging——清晰的执行过程,快速定位问题

    持续集成:Jenkins(通过插件HTML Publisher/git/Email Extension)进行自动构建,生成HTML,发送邮件

    2、自动化框架的设计、维护

    (1)、数据与代码分离(数据驱动)

    (2)、结果分层

    逻辑层:公用的方法封装起来,避免用例层的代码冗余

    数据层:设计Excel、excel读取,参数化替换

    用例层:存放测试用例

    3、根据什么来做断言

    (1)、协议状态码:200、404、503

    (2)、业务状态码:status:0

    (3)、业务数据

    二十二、做好测试计划的关键是什么

    明确测试目的,增强测试假话的实用性,保证测试用例的实用性和覆盖率,完全需求文档和规格指标书。严格界定测试周期,测试轮次,测试覆盖模块

    二十三、super是干嘛用的

    super用于继承父类的方法、属性。可提高代码的复用性、可维护性

    二十四、测试用例的编写要点有哪些?

    1、必填字段:请求参数必填项、可填项

    2、合法性:输入输出合法、非法参数

    3、边界:请求参数边界值等

    4、容错能力:大容量数据、频繁请求、重复请求、异常网络等

    5、响应数据校验:断言、数据提取传递到下一级接口

    6、逻辑校验:两个请求有严格的先后顺序,

    7、性能:对接口模拟并发测试,逐步加压,分析瓶颈点

    8、安全性:构造恶意字符请求

    unittest单元测试框架总结:

    https://www.cnblogs.com/yufeihlf/p/5707929.html#test1

    测试人员查看log日志:

    https://blog.csdn.net/HemingwayM/article/details/84956040

  • 相关阅读:
    Git使用经验小结
    Git使用经验小结
    关于IT增值服务"拜师学艺"价格调整的通知
    关于IT增值服务"拜师学艺"价格调整的通知
    Java实现 LeetCode 397 整数替换
    Java实现 LeetCode 397 整数替换
    Java实现 LeetCode 397 整数替换
    Java实现 LeetCode 396 旋转函数
    Java实现 LeetCode 396 旋转函数
    Java实现 LeetCode 396 旋转函数
  • 原文地址:https://www.cnblogs.com/huilianglog/p/13712857.html
Copyright © 2011-2022 走看看