一种接口性能测试方法和系统技术方案

技术编号:37569684 阅读:14 留言:0更新日期:2023-05-15 07:48
本发明专利技术公开了一种接口性能测试方法和系统,方法包括:构建分布式执行的Locust测试脚本,Locust测试脚本测试接口性能,获取接口性能数据;将所述接口性能测试数据保存后,读取所述接口性能数据中的关键词,将所述关键词根据时间存储到数据表中;采用Flask框架读取数据库表中的关键词,并根据时间顺序构建接口性能测试的结构化数据;采用渲染模板将所述结构化数据渲染成可是化的接口性能测试趋势图,所述方法定位日志数据中的关键词,并将关键词存储到数据库表中,并利用Flask框架读取数据库表相关关键词执行不同时间段的接口性能测试对比,并通过渲染模板输出可视化化的测试性能趋势图,从而提高接口测试方案的分析能力。从而提高接口测试方案的分析能力。从而提高接口测试方案的分析能力。

【技术实现步骤摘要】
一种接口性能测试方法和系统


[0001]本专利技术涉及软件测试
,特别涉及一种接口性能测试方法和系统。

技术介绍

[0002]目前传统的接口测试方法为在本地安装JMeter,并采用手动方式执行接口性能测试,然而上述传统接口性能测试方法主要存在如下技术问题:1、每次测试需要手动执行,比较耗费测试人员的时间;2、无法对比两次测试执行后的结果,JMeter只能记录单次执行后的结果;3、无法观察趋势,目前的测试方案无法展示一段时间内性能的趋势;4、JMeter单机并发能力较低,无法测试出接口真正的性能瓶颈。

技术实现思路

[0003]本专利技术其中一个专利技术目的在于提供一种接口性能测试方法和系统,所述方法和系统利用Locust测试脚本执行分布式主从机控制的接口性能测试任务调度,通过上述任务调度可以实现单机测试接口的并发能力,减少机器资源的使用,降低接口性能测试成本。
[0004]本专利技术另一个专利技术目的在于提供一种接口性能测试方法和系统,所述方法和系统利用Locust测试脚本和对应的linux crontab命令执行定时任务,因此无需手动执行相关测试,减少人力成本。
[0005]本专利技术另一个专利技术目的在于提供一种接口性能测试方法和系统,所述方法和系统在得到接口性能测试的日志数据后,定位日志数据中的关键词,并将关键词存储到数据库表中,并利用Flask框架读取数据库表相关关键词执行不同时间段的接口性能测试对比,并通过渲染模板输出不同维度可视化的测试性能趋势图,从而提高接口测试方案的分析能力。
[0006]本专利技术另一个专利技术目的在于提供一种接口性能测试方法和系统,所述方法和系统在利用Locust测试脚本执行分布式主从机控制框架在提高并发能力下更真实准确测试出接口性能瓶颈。
[0007]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种接口性能测试方法,所述方法包括:
[0008]构建分布式执行的Locust测试脚本,所述Locust测试脚本测试接口性能,获取接口性能数据;
[0009]将所述接口性能测试数据保存后,读取所述接口性能数据中的关键词,将所述关键词根据时间存储到数据表中;
[0010]采用Flask框架读取数据库表中的关键词,并根据时间顺序构建接口性能测试的结构化数据;
[0011]采用渲染模板将所述结构化数据渲染成可是化的接口性能测试趋势图。
[0012]根据本专利技术其中一个较佳实施例,所述方法包括:在UAT环境下,通过linux crontab设定定时任务,用于定时调度Locust测试脚本。
[0013]根据本专利技术另一个较佳实施例,所述Locust测试脚本的分布式执行方法包括:配置至少一个主机和多个从机,其中所述主机分别连接每一个从机,在所述主机上配置用户参数,通过所述主机在对应的从机上生成并运行用户。
[0014]根据本专利技术另一个较佳实施例,所述从机将基于用户运行的接口性能测试数据发送给主机,所述主机将接口性能测试数据保存后上传至云对象存储文件中。
[0015]根据本专利技术另一个较佳实施例,所述接口性能测试数据包括每个接口运行结果、总体运行结果、百分位响应时间和接口错误信息。
[0016]根据本专利技术另一个较佳实施例,所述关键词获取方法包括:获取到所述接口性能测试数据中的日志数据,获取所述日志数据中的关键词,将所述关键词和数据表字段对应的数据存储到数据库表中。
[0017]根据本专利技术另一个较佳实施例,通过所述Flask框架的pymysql查询数据库表中的关键词,并获取每一关键词在日志中的时间,建立关键词和时间的映射关系,根据所述映射关系构建结构化数据。
[0018]根据本专利技术另一个较佳实施例,将不同维度的所述结构化数据传入到对应的HTML模板文件中,通过所述模板文件渲染出不同维度的分析结果图。
[0019]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种接口性能测试系统,所述系统执行上述一种接口性能测试方法。
[0020]本专利技术进一步提供一种计算机可读存储介质,所述计算机可读存储介质被处理器执行上述一种接口性能测试方法。
附图说明
[0021]图1显示的是本专利技术一种接口性能测试方法的流程示意图。
[0022]图2显示的是本专利技术中数据库表中的总体数据表示意图。
[0023]图3显示的是本专利技术中数据库表中的各接口详情表示意图。
[0024]图4显示的是本专利技术中以RPS趋势维度的接口性能测试示结果示意图。
具体实施方式
[0025]以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本专利技术的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本专利技术的精神和范围的其他技术方案。
[0026]可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
[0027]请结合图1

图4,本专利技术公开了一种接口性能测试方法和系统,所述方法和系统利用了Locust测试脚本和Flask框架对不同维度的接口性能测试数据进行可视化分析展示,提高接口性能测试分析能力。通过设置Locust测试脚本的相关调度指令,可以实现自动化测试,减少人力成本。
[0028]具体而言,首先需要通过linux crontab指令设定定时任务,为了不影响业务的正
常使用本专利技术可以在uat(用户可接收测试)环境下设置所述定时任务,所述定时任务包括定时调度所述Locust测试脚本执行对应接口性能测试,定时任务设置的时间点可以是夜间。本专利技术中所述接口性能测试系统配置至少一台主机和多台从机,并且所述主机和每台从机都建立通讯连接,使得主机可以对从机下发指令,从机可以对主机上传相关接口性能测试数据,本专利技术中主机上配置用户参数,从机上生成和运行对应用户,其中所述每一个从机上都配置有worker,使得每个从机可以执行对应的Locust测试脚本。本专利技术中在主机上配置的用户参数可以是包括但不仅限于每一从机的用户产生数量、Locust测试脚本开始测试时间和结束测试时间,需要说明的是,本专利技术中主机本身不产生用户,也不发送用户给从机,所述用户参数仅仅是控制从机用户的产生和运行。当从机在运行相关用户后,从机将Locust测试脚本得到的相关接口性能测试数据上传至所述主机,并利用所述主机将相关接口性能测试数据上传到云端的对象存储文件夹中。
[0029]由于在接口性能测试整个过程中会产生大量的日志数据,其中利用所述Locust测试脚本截取测试结束后输出的日志数据,截取的所述日志数据包括但不仅限于每个接口的运行结果、总体结果、百分位响应时间和接口错误信息,其中利用python脚本获取日志中的数据,定位日志中关键词,在获取到所述关键词后,将和数据库表本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种接口性能测试方法,其特征在于,所述方法包括:构建分布式执行的Locust测试脚本,所述Locust测试脚本测试接口性能,获取接口性能数据;将所述接口性能测试数据保存后,读取所述接口性能数据中的关键词,将所述关键词根据时间存储到数据表中;采用Flask框架读取数据库表中的关键词,并根据时间顺序构建接口性能测试的结构化数据;采用渲染模板将所述结构化数据渲染成可是化的接口性能测试趋势图。2.根据权利要求1所述的一种接口性能测试方法,其特征在于,所述方法包括:在UAT环境下,通过linux crontab设定定时任务,用于定时调度Locust测试脚本。3.根据权利要求1所述的一种接口性能测试方法,其特征在于,所述Locust测试脚本的分布式执行方法包括:配置至少一个主机和多个从机,其中所述主机分别连接每一个从机,在所述主机上配置用户参数,通过所述主机在对应的从机上生成并运行用户。4.根据权利要求3所述的一种接口性能测试方法,其特征在于,所述从机将基于用户运行的接口性能测试数据发送给主机,所述主机将接口性能测试数据保存后上传至云对象存储文件中。5.根据权利要求1所述的一种接...

【专利技术属性】
技术研发人员:张叶叶晁凤英孙勤魏美钟
申请(专利权)人:杭州每刻科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1