+ All Categories
Home > Documents > 借助 Python 开源生态打造企业级自动化测试框 …背景介绍...

借助 Python 开源生态打造企业级自动化测试框 …背景介绍...

Date post: 04-Jul-2020
Category:
Upload: others
View: 34 times
Download: 0 times
Share this document with a friend
43
借助 Python 开源态打造企业级 动化测试框架(HttpRunner) 演讲: debugtalk
Transcript
  • 借助 Python 开源⽣生态打造企业级⾃自动化测试框架(HttpRunner)

    演讲⼈人: 李李隆隆(debugtalk)

  • 主题概要

    1、背景介绍

    2、HttpRunner 设计思路路

    3、HttpRunner 核⼼心特性

    4、HttpRunner 实践案例例

    5、Q & A

  • 1、背景介绍

  • 背景介绍

    1、业务⾼高速发展,需求迭代频繁

    2、普遍具有功能回归测试、性能

    测试、持续集成、线上监控等需求 成本⾼高

    效率低

    投⼊入产出⽐比低

  • 背景介绍

    ⾃自动化测试 ?

  • 基于 Python 的⾃自动化测试⽣生态

  • 传统⾃自动化测试⽅方法普遍存在的问题:

    ⼯工具多 & 杂 学习成本⾼高 团队协作难 维护成本⾼高

    背景介绍

  • 背景介绍

    ⽬目标:提升投⼊入产出⽐比

    少投⼊入 ⾼高收益

    •⼯工具开发 & 维护

    •学习使⽤用成本

    •编写 & 录制测试⽤用例例

    •测试⽤用例例管理理 & 维护

    •实现⾃自动化回归测试

    •性能测试脚本复⽤用

    •兼具持续集成、线上监控

    •辅助⼿手⼯工测试:⾃自定义⽣生成特定业务数据

  • 2、HttpRunner 设计思路路

  • 设计思路路

    如何快速实现从0到1?

    如何避免闭⻔门造⻋车?

    如何兼具⾃自动化、性能测试、持续集成、线上监控?

    如何保障⼯工具(框架)质量量?

    如何实现协作管理理?

    如何将框架设计得更更优雅?

  • 设计思路路 - 如何快速实现从0到1?

    充分复⽤用开源项⽬目

    HttpRunner

    明显优势:

    • 减少开发量量

    • 保障稳定性

    • 降低学习成本

  • 设计思路路 - 如何快速实现从0到1?

    遵循⾏行行业标准

  • 设计思路路 - 如何避免闭⻔门造⻋车?

    博客驱动开发

    拥抱开源⽣生态

  • 设计思路路 - 如何兼具⾃自动化、性能测试、持续集成、线上监控?

    ⾃自动化

    性能测试

    持续集成 线上监控

    ⼀一次投⼊入,多处复⽤用

    实现命令⾏行行(CLI)调⽤用

    引⼊入并发机制

  • Custom Mock Server

    httpbin.org by kennethreitz

    Postman Echo services

    测试驱动开发

    开源社区反馈

    Github issues

    TesterHome

    设计思路路 - 如何保障⼯工具质量量?

  • 复⽤用 Requests interface

    统⼀一测试⽤用例例描述形式(JSON/YAML)

    JSON Schemas

    设计思路路 - 如何实现协作管理理?

    约定⼤大于配置

  • 设计思路路 - 如何实现协作管理理?

    信息量量等价

    规范

    简洁重复

    迥异

  • 设计思路路 - 如何实现协作管理理?

    脚本与平台⽆无缝切换

    统⼀一存储和管理理

    平台服务化⼿手⼯工编写

    ⾃自动化平台录⼊入

  • 设计思路路 - 如何将框架设计得更更优雅?

    debugtalk.py

    测试⽤用例例模板语⾔言(JSON/YAML)

    参数化机制(parameters)

    环境变量量管理理(.env)

    测试⽤用例例分层管理理

    借鉴优秀(开源)项⽬目

  • 遵循 Unix 哲学“Write programs that do one thing and do it well.”“Write programs to work together.”

    prepare

    loader

    parser

    initializer

    runner

    report

    设计思路路 - 如何将框架设计得更更优雅?

  • 逻辑流程图

  • 逻辑流程图

  • 3、HttpRunner 核⼼心特性

  • HttpRunner 是什什么?

    接⼝口⾃自动化测试⼯工具

    简单易易⽤用 功能强⼤大

  • 核⼼心特性

    抓包录制 & ⽣生成⽤用例例 Postman 转换⽣生成⽤用例例 Swagger 转换⽣生成⽤用例例

    YAML/JSON ⽤用例例格式

    测试⽤用例例分层机制

    数据驱动机制

    测试⽤用例例分组执⾏行行控制 setup & teardown hooks 动态计算(debugtalk.py)

    性能测试 CLI 调⽤用 可扩展测试报告(Jinja2)

    JSON Schema

    … 加载环境变量量(.env)

  • 核⼼心特性 - 测试准备

    HAR

    har2case

    postman2case

    swagger2case

    export

    ⾃自动化平台录⼊入/⼿手⼯工编写

    录制⽣生成测试⽤用例例

  • 核⼼心特性 - 测试脚本优化

    变量量定义 variables

    结果提取 extract

    setup_hooks

    teardown_hooks

    函数调⽤用${func($a, 9)}

    变量量引⽤用 $var

    结果校验 validate

    ⽤用例例集全局定义

    数据驱动 parameters

  • 核⼼心特性 - 测试脚本优化

    函数定义 debugtalk.py

  • 核⼼心特性 - 测试执⾏行行

  • 核⼼心特性 - 测试报告

  • 核⼼心特性 - 性能测试

  • HttpRunner 还是什什么?

    不不仅仅是⾃自动化测试⼯工具

    通⽤用的⾃自动化测试解决⽅方案

    融合最佳⼯工程实践

    打造接⼝口⾃自动化测试⽣生态

    基于 HttpRunner 的接⼝口测试平台:

    • HttpRunnerManager

    • FastRunner

    • SECO

    • testcenter

    • ApiTestWeb

  • 4、HttpRunner 实践案例例

  • 实践案例例

    整体架构图

    ⾃自动化测试平台

    打通功能测试平台(TestRail)

    性能测试平台

  • 实践案例例 - 整体架构图

    核⼼心组件开源

  • 实践案例例 - ⾃自动化测试平台

    在线编辑 & 查看

  • 实践案例例 - ⾃自动化测试平台

    在线调试接⼝口

  • 实践案例例 - ⾃自动化测试平台

    拖拽组装⽣生成测试场景

    测试⽤用例例分层管理理

  • 实践案例例 - 打通功能测试平台(TestRail)

    关联功能测试⽤用例例和⾃自动化测试⽤用例例

    ⾃自动化率统计

  • 实践案例例 - 打通功能测试平台(TestRail)

    触发执⾏行行

    查看执⾏行行结果

  • 实践案例例 - 性能测试平台

    查看性能测试任务对应的 ⾃自动化测试⽤用例例

    ⽐比例例权重配置

  • 实践案例例 - 性能测试平台

    智能加压

    性能数据 Grafana

    New Relic

  • THANK YOU

    You can find me here:

    •Blog: http://debugtalk.com

    •GitHub: https://github.com/debugtalk

    •微信公众号:DebugTalk

    http://debugtalk.comhttps://github.com/debugtalk

Recommended