好文档 - 专业文书写作范文服务资料分享网站

基于pytest和JMeter的自动化测试系统设计和实现

天下 分享 时间: 加入收藏 我要投稿 点赞

基于pytest和JMeter的自动化测试系统设计和实现

李一风

【摘 要】摘 要: JMeter作为一款优秀的测试工具被广泛应用于接口测试和性能测试,但是由于JMeter不是一种测试框架,在面对复杂的测试计划和众多测试用例的测试集时,用例管理和用例调度需要测试人员手工介入,大大影响了测试效率。本文设计并实现了一种基于pytest的自动化框架,实现了pytest和JMeter的有机结合,可以实现用例的管理、分布式执行、失败重试等功能,提高了JMeter测试用例的执行效率,降低了人为操作的出错概率。 【期刊名称】智能计算机与应用 【年(卷),期】2019(009)001 【总页数】4

【关键词】关键词: 自动化测试; 分布式; pytest; JMeter 【文献来源】

https://www.zhangqiaokeyan.com/academic-journal-cn_intelligent-computer-

applications_thesis/0201271001210.html

0 引 言

自动化测试是软件测试未来的发展方向,自动化测试中往往会遇到测试脚本管理困难、测试效率低等问题[1-4]。如何选用合适的测试工具和搭建有效的测试框架是测试工程师一直在研究的问题。JMeter作为一种功能丰富的测试工具受到了广泛关注和研究[2-5]。Apache JMeter是一个基于Java语言的开源工具,可以用于软件的功能测试和性能测试。在被测系统功能越来越多,结构越来越复杂的今天,测试用例往往非常庞大,一个回归测试就需要几十或上百个JMeter脚本组成的测试集。单纯使用JMeter时会存在以下问题。

(1)测试用例的管理。JMeter本身不提供测试集的管理功能,多个JMeter脚本的执行一般需要测试人员手动整理出测试计划中应该包含的测试用例。手动在命令行启动JMeter命令,并在发生错误时进行人工排查,达不到一键执行和无人值守。

(2)大量脚本的执行效率问题。JMeter自带远程执行功能只是针对一个脚本中的多个步骤并行,不支持多个JMeter脚本的并行执行。需要实现多个测试用例的并行执行时,需要自行编写复杂的调度程序或者测试人员人工介入。前者成本较高,后者无法实现完全的自动化。

本文设计并实现了一种基于pytest的自动化测试系统,具有如下特点:

(1)充分利用pytest本身的功能和丰富的插件,只需编写少量代码、简单轻量、可以快速部署。

(2)实现了多JMeter脚本的管理,可以一键执行测试集,并在脚本执行中自动进行异常重试,实现了无人值守。

(3)进行远程分布式执行,使得在遇到测试资源瓶颈时,快速进行测试执行机的横向扩展来提高测试计划的执行效率。

(4)自动生成JUnit格式报告,可以方便的与持续集成系统进行集成,生成各种测试报告和图表。

1 基于pytest的自动化测试系统

1.1 pytest

pytest是基于Python语言的一种自动化测试框架,本身具有Python语言的良好的跨平台性和简单易上手的优点[6-9]。pytest可以用于单元测试或功能测试,相比其它测试框架,具有以下优点:

(1)简单灵活,容易上手。 (2)支持测试用例的参数化。

(3)能支持简单的单元测试和复杂的功能测试。 (4)具有较多第三方插件,并可以自定义扩展。

(5)执行测试过程中可将某些测试跳过,或对某些预期失败的用例标记成失败。 (6)支持多种格式的测试报告,可很好地与持续系统集成。

基于上述优点,pytest已经成为Python中最流行的测试框架之一。 1.2 系统结构介绍

该框架主要分为4个模块,自动化测试系统结构如图1所示。

(1)初始化模块。用于读取配置文件,获取测试要执行的各种参数;从Git仓库拉取最新的JMeter脚本文件,转换脚本文件为pytest的测试用例参数;建立与测试执行机的SSH连接,同步要执行的JMeter脚本到各个测试执行机;在测试执行机上创建子进程等待测试任务的分配。

(2)任务调度模块。根据调度算法,分配测试脚本到不同的执行机上的子进程。 (3)测试执行模块。在子进程中执行测试脚本,通过解析JMeter生成的xml格式的报告,判断测试执行是否成功。

(4)报告收集模块。将所有测试执行机生成的多个测试脚本的报告收集回调度机,生成整个测试计划的报告。 1.3 基于pytest的自动化测试流程

本文的自动化测试系统工作流程如图2所示。

(1)调用入口程序触发一次测试计划的执行,进行测试计划配置文件的读取,得到要执行的脚本Git仓库地址和测试用例目录、测试环境等参数,并启动

基于pytest和JMeter的自动化测试系统设计和实现

基于pytest和JMeter的自动化测试系统设计和实现李一风【摘要】摘要:JMeter作为一款优秀的测试工具被广泛应用于接口测试和性能测试,但是由于JMeter不是一种测试框架,在面对复杂的测试计划和众多测试用例的测试集时,用例管理和用例调度需要测试人员手工介入,大大影响了测试效率。本文设计并实现了一种基于pytest的自
推荐度:
点击下载文档文档为doc格式
5eydt3tqg23h0qq02ukg7f1wl0k4iy014xm
领取福利

微信扫码领取福利

微信扫码分享