网易首页 > 网易号 > 正文 申请入驻

自动化测试实战篇:基于Python实践性能指标结果自动采集工具

0
分享至

  1.背景

  在性能测试过程中,往往需要监控服务器的性能情况,并记录这些性能指标结果。不论是云下数据库服务器还是应用服务器,都可以通过nmon来进行监控,设定打点间隔和打点次数,将性能指标情况保存成nmon文件,并通过工具,如Excel插件Nmon_Analyzer、Java GUI工具nmon visualizer等读取nmon文件内容,分析采集结果。但当监控的服务器数量较多时,依次采集多个nmon文件中的性能指标结果会耗费时间,同时,人工读取和记录数据也可能会出现记录错误的偶然误差。因此我们可以尝试使用自己熟悉的编程语言,如Python等,来开发一款简单易实现的小工具,用于自动采集性能测试nmon文件中的性能测试指标。

  2. 工具介绍与设计

  工具实现的基本思想是逐个扫描指定路径下的nmon文件,根据nmon文件的内部格式,提取出目标性能指标数据,再对提取出来的数据进行加工处理,得到结果,并将结果自动保存到新生成的结果Excel文件中。为了更直观地获取用户输入的nmon文件路径及结果保存路径,我们可以编写GUI界面,利用界面上的文本输入框来获取用户的输入,并采用界面上的按钮来触发这一采集事件。

  图1 工具设计流程图

  3. 工具实现

  (1)导入所需模块

  由于我们的工具中包含对文件和路径进行操作,这需要依赖os模块实现。在逐行读取nmon文件内容时,用codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode。re模块是python独有的匹配字符串的模块,利用正则表达式对字符串进行模糊匹配,提取自己需要的字符串部分,使用该模块可以实现逐行扫描进行模糊匹配查找到CPU和内存的相关性能指标。xlwt库的作用是将数据写入Excel表格中。Tkinter 是 Python 的标准 GUI 库,导入 Tkinter 模块后可以使用控件快速的创建 GUI 应用程序。 tkinter.StringVar 能自动刷新的字符串变量,可用set和get方法进行传值和取值,以此来接收用户输入。

  图2 代码-导入所需模块

  (2)窗口的实现

  利用Tkinter模块创建窗口并插入输入框控件用来获取用户输入的路径信息,输入框的内容存储到StringVar当中,设置按钮Button用于和鼠标点击事件绑定。

  图3 代码-窗口的实现

  图3 窗口的实现图

  (3)编写事件代码——求CPU平均利用率的函数

  不同版本的nmon文件内部格式略有不同,因此在编写程序时,要先了解目标版本的内部结构,用来确定字符串模式匹配时,需要利用nmon文件中性能指标相关内容的哪些特征。

  为了计算均值,需要获取nmon文件中记录的打点次数。通过了解nmon文件中AAA参数是关于操作系统以及nmon本身的一些信息,可以查找该行来进行提取。

  图4 代码-获取打点次数和打点间隔

  CPU_ALL参数是对所有CPU的概述,显示所有CPU平均占用情况,将记录的CPU占用率逐个取出存放在数组里,并求数组元素的平均值,即为整个监控期间CPU的平均利用率,函数将该值返回。

  图5 代码-求CPU平均利用率

  (4)编写事件代码——求内存均占用率的函数

  类似地,通过MEM参数获取内存占用情况,与CPU情况不同的是,该参数行包括多项内存相关指标,而在监控性能指标时,我们常用公式1来计算内存的占用率,因此需要从MEM参数中提取相关指标,包括memtotal、memfree、cached、buffers,按照公式进行计算,并返回内存占用率。

  公式1 内存占用率常用计算公式

  图6 代码-求内存占用率

  (5)编写事件代码——鼠标点击事件

  该事件用于和界面上的按钮Button进行绑定,实现当点击按钮后的一系列操作:从输入框取nmon文件路径和目标保存路径,生成Excel文件并创建工作表,写入默认的表头内容,调用求CPU平均利用率的函数和求内存均占用率的函数,将返回的值写入Excel文件并保存。

  图7 代码-鼠标点击事件

  4. 总结

  该工具是基于Python语言的简单实践,可以实现批量自动提取nmon文件中的性能指标结果,并且可以沿用本思路根据需要对工具的功能进行修改或扩展。使用本工具进行性能结果的自动采集相比人工读取数值更加节省时间,并且避免了记录时出现错误的偶然误差,有助于提升准确度和测试效率。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“医生说没希望了!”江苏女孩被外卖员撞伤,高考622分令人惋惜

“医生说没希望了!”江苏女孩被外卖员撞伤,高考622分令人惋惜

辣媒专栏记录
2024-07-01 17:30:02
那英,确诊!

那英,确诊!

沈阳公交网小林
2024-06-30 00:16:41
为什么现在的年轻人都不想卷了?网友:卷不动!

为什么现在的年轻人都不想卷了?网友:卷不动!

阿裤聊历史
2024-07-01 15:09:48
陕西地震了?

陕西地震了?

Auroua
2024-06-18 22:13:52
Stein:勇士早想2年5000万续克莱 在追梦续约后克莱感觉不被尊重

Stein:勇士早想2年5000万续克莱 在追梦续约后克莱感觉不被尊重

直播吧
2024-07-02 01:36:32
菲律宾,又传来一个坏消息

菲律宾,又传来一个坏消息

牛弹琴
2024-07-02 08:01:10
女留学生染指上千外国男子,拍成视频走红网络,父母与她断绝关系

女留学生染指上千外国男子,拍成视频走红网络,父母与她断绝关系

阿胡
2024-06-16 11:06:11
演员李子雄:我这辈子最正确的决定,就是再婚娶了张铁林的前任

演员李子雄:我这辈子最正确的决定,就是再婚娶了张铁林的前任

蜉蝣说
2024-06-30 21:39:16
现在,冲击才刚刚开始……

现在,冲击才刚刚开始……

杨国英观察
2024-07-02 00:05:20
晚上在家一定要记得拉窗帘!网友的分享太炸裂,细思极恐!

晚上在家一定要记得拉窗帘!网友的分享太炸裂,细思极恐!

有趣的火烈鸟
2024-06-22 05:54:10
急诊医生解读现场画面:没看到急救动作!17岁国羽小将猝死仍有疑点……

急诊医生解读现场画面:没看到急救动作!17岁国羽小将猝死仍有疑点……

新民周刊
2024-07-01 19:11:09
国防部要求北约停止核讹诈与核胁迫

国防部要求北约停止核讹诈与核胁迫

新京报
2024-06-27 17:00:20
荒唐的形式主义!35度高温下的环保秀,田间地头辛苦守护给谁看?

荒唐的形式主义!35度高温下的环保秀,田间地头辛苦守护给谁看?

阿裤聊历史
2024-07-01 11:03:59
城市规划史上的重大失误?城市规划中的一大败笔:成都机场高速

城市规划史上的重大失误?城市规划中的一大败笔:成都机场高速

沫姐美食记
2024-07-02 07:50:25
刘强东只有在美国的那一次吗?评论区太真实了!

刘强东只有在美国的那一次吗?评论区太真实了!

奇特短尾矮袋鼠
2024-06-24 15:41:17
笑麻了,当选择了导弹维修专业后,张雪峰都看懵了,评论区笑死!

笑麻了,当选择了导弹维修专业后,张雪峰都看懵了,评论区笑死!

奇特短尾矮袋鼠
2024-06-30 22:02:54
国足最新消息!U16男足3-2赢球,亚洲杯预选赛C组对手出炉

国足最新消息!U16男足3-2赢球,亚洲杯预选赛C组对手出炉

体坛叨逼叨
2024-07-01 11:57:34
浙江公园惊现“日本旭日旗”雕塑,园方回应:这是“旭日东升”!

浙江公园惊现“日本旭日旗”雕塑,园方回应:这是“旭日东升”!

美食阿鳕
2024-07-02 11:04:08
广东男生612分想出省读书,家人建议冲华工或深大,方便省内就业

广东男生612分想出省读书,家人建议冲华工或深大,方便省内就业

小义了不休
2024-07-01 20:17:22
魏建军自毁长城

魏建军自毁长城

小椰的奶奶
2024-07-02 07:55:02
2024-07-02 12:08:49
51Testing软件测试网
51Testing软件测试网
中国软件测试人的精神家园
1519文章数 13252关注度
往期回顾 全部

科技要闻

二手车商喜欢特斯拉,讨厌比亚迪?

头条要闻

"王妈"系列短剧收官:"背刺打工人"仍涨粉 还是0人参保

头条要闻

"王妈"系列短剧收官:"背刺打工人"仍涨粉 还是0人参保

体育要闻

葡萄牙的神!他拯救C罗拯救葡萄牙

娱乐要闻

未火先塌?流量的路子不好走啊

财经要闻

酒鬼酒甜蜜素风波后再迎人事变动

汽车要闻

长城NOA系统勇闯重庆 魏建军:挑战智驾上限

态度原创

时尚
健康
家居
数码
军事航空

夏天这样穿吊带,轻松显瘦又性感

人类为何至今无法攻克渐冻症?

家居要闻

江畔雅居 石质与木色的现代风

数码要闻

荣耀200系列重磅更新!端侧大模型赋能AI消除新体验

军事要闻

泽连斯基:俄乌谈判可采取“第三国调解”模式

无障碍浏览 进入关怀版