基于python的性能测试方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:24995634 阅读:77 留言:0更新日期:2020-07-24 17:58
本发明专利技术涉及一种基于python的性能测试方法、装置、计算机设备及存储介质,方法包括:安装python环境,并在Python环境中搭建httprunner和locust系统;创建httprunner初始脚本;通过fiddler程序抓包,并将抓取到的数据包导入到httprunner中生成测试脚本;封装日志模块和邮件模块,并引入用于定义测试报告的HTMLTestRunner和mkdocs程序;执行测试脚本,并获取网页版测试日志和测试报告。本发明专利技术通过fiddler抓包,然后将所抓的包导出为har格式,继续转换为yaml格式,再导入到httprunner中的方式来完成脚本编写工作,极大的降低脚本编写门槛,也提高了测试效率,也减少代码出错率;可以在性能测试执行过程中,于locust的UI界面增加并发数,无需等测试执行完后再设置并发数。

【技术实现步骤摘要】
基于python的性能测试方法、装置、计算机设备及存储介质
本专利技术涉及计算机领域,更具体地说是指一种基于python的性能测试方法、装置、计算机设备及存储介质。
技术介绍
目前市场上比较流行的性能测试工具主要有loadrunner和jmeter,上述的loadrunner和jmeter能支持大部分协议的性能测试。loadrunner通过Agent进程监视各种协议的client和server端的通讯,使用自带的C语言将录制下来的用户操作转换为脚本,loadrunner调用这些脚本向服务器端发出请求并接受服务器的响应,通过Virtualusergenerator来编写脚本、controller来设置场景参数,管理虚拟用户、analysis来查看测试结果。loadrunner存在以下几个缺点:1、loadrunner是一个重量级的软件,安装繁琐;2、脚本编写非常复杂,对代码功底要求高;3、压测过程中不能人工增加并发数;4、不能跨平台,也不能二次扩。jmeter是基于java语言的开源的应用软件,jmeter作为浏览器与web服务器之间的代理网关,可以捕获浏览器的请求和web服务器的响应,通过线程来模拟真实用户对web服务器的访问压力。基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果。jmeter存在以下几个缺点:1、脚本编写比较繁琐,需要添加一大堆元件;2、压测过程中不能人工增加并发数;3、不支持大并发压力测试;4、报表类型较少。公开于该
技术介绍
部分的信息仅仅旨在加深对本技术的总体
技术介绍
的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供一种基于python的性能测试方法、装置、计算机设备及存储介质。为实现上述目的,本专利技术采用以下技术方案:第一方面,本专利技术提出一种基于python的性能测试方法,包括以下步骤:安装python环境,并在Python环境中搭建httprunner和locust系统;创建httprunner初始脚本;通过fiddler程序抓包,并将抓取到的数据包导入到httprunner中生成测试脚本;封装日志模块和邮件模块,并引入用于定义测试报告的HTMLTestRunner和mkdocs程序;执行测试脚本,并获取网页版测试日志和测试报告。第二方面,本专利技术提出一种基于python的性能测试装置,包括:环境搭建单元,用于安装python环境,并在Python环境中搭建httprunner和locust系统;初始创建单元,用于创建httprunner初始脚本;脚本生成单元,用于通过fiddler程序抓包,并将抓取到的数据包导入到httprunner中生成测试脚本;模块封装单元,用于封装日志模块和邮件模块,并引入用于定义测试报告的HTMLTestRunner和mkdocs程序;执行获取单元,用于执行测试脚本,并获取网页版测试日志和测试报告。第三方面,本专利技术提出一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于python的性能测试方法。第四方面,本专利技术提出一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如上所述的基于python的性能测试方法。本专利技术与现有技术相比的有益效果是:本专利技术通过fiddler程序抓包,然后将所抓的包导出为har格式,继续转换为yaml格式,再导入到httprunner中的方式来完成脚本编写工作,极大的降低脚本编写门槛,也提高了测试效率,也减少代码出错率;可以在性能测试执行过程中,于locust的UI界面增加并发数,无需等测试执行完后再设置并发数;python中封装日志模块和邮件模块,引入HTMLTestRunner和mkdocs程序,实现性能测试过程中的测试日志的实时输出,以及测试完成后测试报告网页化,同时测试日志和测试报告存储到本地,方便查阅以及以备日后查看。下面结合附图和具体实施例对本专利技术作进一步描述。附图说明为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的基于python的性能测试方法的应用场景示意图;图2为本专利技术实施例提供的基于python的性能测试方法的流程示意图;图3为本专利技术实施例提供的基于python的性能测试方法的子流程示意图;图4为本专利技术实施例提供的基于python的性能测试方法的子流程示意图;图5为本专利技术实施例提供的基于python的性能测试方法的子流程示意图;图6为本专利技术实施例提供的基于python的性能测试方法的子流程示意图;图7为本专利技术实施例提供的基于python的性能测试方法的子流程示意图;图8为本专利技术实施例提供的基于python的性能测试装置的示意性框图;图9为本专利技术实施例提供的基于python的性能测试装置的初始创建单元的示意性框图;图10为本专利技术实施例提供的基于python的性能测试装置的执行获取单元的示意性框图;图11为本专利技术实施例提供的计算机设备的示意性框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。如在本专利技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。请参阅图1和图2,图1为本专利技术实施例提供的基于python的性能测试方法的应用场景示意图。图2为本专利技术实施例提供的基于python的性能测试方法的示意性流程图。该基于python的性能测试方法应用于服务器中,该服务器与终端进行数据交互,于服务器中安装python环境,并在Py本文档来自技高网
...

【技术保护点】
1.一种基于python的性能测试方法,其特征在于,包括以下步骤:/n安装python环境,并在Python环境中搭建httprunner和locust系统;/n创建httprunner初始脚本;/n通过fiddler程序抓包,并将抓取到的数据包导入到httprunner中生成测试脚本;/n封装日志模块和邮件模块,并引入用于定义测试报告的HTMLTestRunner和mkdocs程序;/n执行测试脚本,并获取网页版测试日志和测试报告。/n

【技术特征摘要】
1.一种基于python的性能测试方法,其特征在于,包括以下步骤:
安装python环境,并在Python环境中搭建httprunner和locust系统;
创建httprunner初始脚本;
通过fiddler程序抓包,并将抓取到的数据包导入到httprunner中生成测试脚本;
封装日志模块和邮件模块,并引入用于定义测试报告的HTMLTestRunner和mkdocs程序;
执行测试脚本,并获取网页版测试日志和测试报告。


2.根据权利要求1所述的基于python的性能测试方法,其特征在于,所述创建httprunner初始脚本的步骤,包括:
在PyCharm程序中新建一个性能测试项目,并新建testsuite、testcases和reports目录,以及.env、.gitignore和debugtalk.py文件;
在testsuite目录中创建测试套件,在testcases目录中创建初始测试用例脚本,以创建初始脚本,所述测试套件包含有若干个测试用例。


3.根据权利要求2所述的基于python的性能测试方法,其特征在于,所述通过fiddler程序抓包,并将抓取到的数据包导入到httprunner中生成测试脚本的步骤,包括:
根据被压测系统的ip和端口号在fiddler程序里面设置代理;
通过fiddler程序抓包,获取被压测系统相应事务的各类请求和响应信息;
将获取到的请求和响应信息以HTTPArohive格式导出,并另存为har格式;
将har格式的数据包另存于httprunner的testcases目录中;
在testcases目录中将har格式的数据包转换为yaml格式,生成测试脚本。


4.根据权利要求3所述的基于python的性能测试方法,其特征在于,所述封装日志模块和邮件模块,并引入用于定义测试报告的HTMLTestRunner和mkdocs程序的步骤,包括:
在python中新建通用模块,并分别封装用于记录日志的日志模块和用于发送/接收邮件的邮件模块;
引入HTMLTestRunner和mkdocs程序,定义测试报告的报告样式,报告名称和报告内容。


5.根据权利要求4所述的基于python的性能...

【专利技术属性】
技术研发人员:王超陈煦文
申请(专利权)人:深圳市万睿智能科技有限公司
类型:发明
国别省市:广东;44

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

1