| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 浅谈pytest+HttpRunner如何展开接口测试 -> 正文阅读 |
|
[开发测试]浅谈pytest+HttpRunner如何展开接口测试 |
作者:石潇 软件测试有多种多样的方法和技术,可以从不同角度对它们进行分类。其中,根据软件生命周期,针对不同的测试对象与目标,可将测试过程分为4个阶段:单元测试、集成测试、系统测试和验收测试。本文着重介绍了如何借用pytest与httprunner进行接口自动化测试。
根据wiki中的定义,接口是一个共享的边界,计算机系统的多个独立组件通过它交换信息。这些信息的交换可以基于软件、硬件、外部设备、人和它们之间的组合。根据上述定义,可以面向软件、硬件、交互设备等展开接口测试。软件的接口测试是面向独立组件之间接口的一种测试,主要用于检测内外部系统及内部各子系统之间的交互点。测试的重点在于检查逻辑正确性、交互依赖性、数据正确性。 二、?引入自动化背景 基于以下几个情况,数栈引入自动化测试,以期提高测试效率,保障交付产品质量。
三、?自动化技术选型 接口测试可以使用的工具有很多,Postman、Jmeter、REST-Assured、SoapUI、httpclient等等。数栈产品使用的是HttpRunner这个框架。相比较于前几类工具,它具有以下特点:
数栈产品曾使用过Jmeter作为接口自动化工具。Jmeter拥有可视化图形界面,通过拖动组件信息就可完成用例编排,方便QA使用。但是Jmeter的内置函数不能满足于复杂的数栈产品,虽然可以选择beanshell来写工具脚本,但其难以调试,第三方包管理困难等问题使编写效率低下。同时Jmeter容易出现编码混乱、日志不易于查看等问题。 HttpRunner作为一款优秀的开源框架,在GitHub上拥有2.6k star,集简单易用、扩展性强、易于集成、录制回放等特性于一体,相比较于Jmeter更适用于数栈自动化实践。 四、 自动化测试用例 数栈整体自动化测试架构如下图所示。从上到下可分为用户层、配置层、用例层、数据源。用户可以通过Docker镜像、Pipeline、定时任务来触发自动化任务。运行的结果记录到禅道,然后通过接入自研的EasyV进行展示。配置文件分为两类:一类是应用系统信息,如业务数据库信息、域名、账号密码等;另一类是数据源信息,用于用例的执行,现在支持的数据源有MySQL、Oracle、Kafka、HBase等等。从业务层面分,可以分为8个产品,每个产品编写各自的用例;从执行层面分,可分为接口测试和场景测试。若选择接口测试,则会运行所有产品的接口测试用例。下面拿接口测试用例进行举例说明。 一条接口测试用例可分为两部分:配置和测试步骤。先来看配置。
然后在测试步骤部分,整个teststeps由Step数组构成。可以看到创建项目这个接口只有一个Step,整个Step分为post、with_headers、with_json、validate、teardown_hooke5个部分组成。其中,with_json中key-value键值对的值全都是引用的方式来取得,而不是写死的固定值。这样就可以将用例与数据区分开来。而具体的值则通过@pytest.mark.parameterize这个装饰器传入,params里定义了这个用例所需的所有字段值。整体用例编写思路为“用例与数据分离”,避免修改测试用例需要改动大量的代码。
所以整体来看,HttpRunner框架提供了一个用例模版--由多个关键字组成,使用者只需要将模版中的内容填充完整,就可以完成一条用例的编写。 五、自动化成果 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 3:00:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |