• 接口自动化学习(10)


    1、什么项目适合做自动化测试?
    适合做自动化测试的项目,简答来说,就是不变的、重复的、规范的。具体来说,满足以下几个方面:

    • 需求变化不太频繁;

    • 项目周期要足够长;

    • 脚本可以重复使用:在一些典型的场景,比如说 “冒烟测试、回归测试” 的地方就是经常使用自动化测试;

    • 被测试的软件是否规范:是否有需求文档、规范的接口文档、是否有原型图、接口设计是否比较规范;

    • 手工测试是无法完成的:比如说需要性能测试,通过自动化测试的成本不是特别高;

    • 测试团队成员具有一定的编程能力。

    2、你是怎么开展自动化测试工作的?

    实际工作中开展自动化测试,我主要从以下几个方面开展:

    • 首先根据产品的业务特性整理自动化的一个功能模板;

    • 其次,我们会根据项目情况以及人员现状,来制定自动化测试计划;

    • 第三,我们会从功能用例当中挑选合适的用例来转成自动化用例;

    • 第四,框架选型,选择编程语言或者工具来实现,我们选择的是 Python 语言来实现的;

    • 第五,自动化测试的脚本开发;

    • 第六,根据项目来制定自动化执行方案;

    • 第七,输出测试报告,以及自动化测试成果的汇报,跟进后期的维护;

    3、接口测试用例的编写要点有哪些?

    • 必填字段:请求参数必填项、可选项;

    • 合法性:输入输出合法、非法参数;

    • 边界:请求参数边界值等;

    • 容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理;

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

    • 逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况;

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

    • 安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑。

    4、你平常做接口测试的过程中发现过哪些 bug?
    常规错误:接口没实现,没按约定返回结果,边界值处理出错等;输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;输入错误的参数、多输入、少输入参数;
    接口可能出现的错误:安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没做恶意请 求拦截等;
    性能问题:如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等。

    5、你所知道的接口安全性方面的测试?

    接口的安全测试主要有以下几个方面:

      • 接口对于请求参数篡改的预防:引入签名、参数MD5加密等;

      • 接口身份认证存在的漏洞:cookie仿冒、session劫持、平行和垂直越权;

      • 完善接口的防刷机制:比如暴力破解短信验证码、找回密码功能的枚举破解安全问题;

      • 竞争条件—利用线程并发漏洞:超过限制下单、同时申请多笔退款;

      • 注入类攻击:sql注入、sqlmap 接口注入检查;

      • 数据保护:检查请求及响应是否包含敏感信息;

      • 安全日志,管理操作需要记录日志。 

  • 相关阅读:
    WebService协议
    用实例揭示notify()和notifyAll()的本质区别 收藏
    深入Java集合学习系列:HashMap的实现原理
    Oracle 索引扫描的五种类型
    Spring 异常
    Spring MVC
    银行家算法
    Java内存模型与多线程
    Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
    SpringMVC单元测试之MockMVC,模拟登入用户
  • 原文地址:https://www.cnblogs.com/chenyablog/p/15191654.html
Copyright © 2020-2023  润新知