用自动化怎么测订单模块?

用自动化怎么测订单模块?,第1张

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文件中的性能指标结果,并且可以沿用本思路根据需要对工具的功能进行修改或扩展。使用本工具进行性能结果的自动采集相比人工读取数值更加节省时间,并且避免了记录时出现错误的偶然误差,有助于提升准确度和测试效率。

用2003版的Excel使用“宏”镇族打开NMON软件御燃弊生产的.nmon文件

nmon analyser——生成 AIX 性能报告的免费段扒工具,可从 NMON 的输出中生成大量的报告图形。nmon_analyser 工具以 NMON 性能工具生成的文件作为输入,然后将它们转换为 Microsoft Excel 电子表格,并自动地生成相应的图形。

在用nmon_analyser 工具中的“nmon analyser v334.xls”打开.nmon文件时,2003版的Excel跳出个对话框,提示“由于安全级别被设为高,并且没有附加数字签字的可信任证书,因此这些宏被禁用。若要运行这些宏,请将安全级别设置为更低级别,或请求作者使用证书颁发机构锁颁发的证书对宏进行数字签名。”

然后打开2003版的Excel中的“工具”——》“宏”——》“安全行”中的“安全级”选择“低”,而且“可靠发行商”中选择“信任所有安全的加载项和模板”和选择“信任对应XXX的访问”。然后关闭Execl,然后再重新打开Execl就可以使用“宏”了。

注:“宏”:指一系列EXCEL能够执行的VBA语句。当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。

Nmon是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel 分析工具(nmon analyser)进行数据的统计分析。

Nmon使用需要nmon工具和nmonanalyser分析程序两者配合使用。nmon工具生成性能数据文件,然后monanalyser以nmon生成的数据文件作为输入,输出为Excel电子表格,并自动地生成相应的图形,使用户能够直观地观察OS性能(CPU、IO和内存等)的变化过程。

1.用root用户登录系统,建立nmon日志存储目录;

2.创建nmon工具运行脚本文件;

该命令启动后,会在/home/centos/nmon/nmon_data目录下生成监控文件,并持续写入资源数据,直至所有监控点收集完成,这些 *** 作均自动完成,无需手工干预,用户可以继续完成其他 *** 作。如果想停止该监控,需要通过“ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。

3.为nmon.sh文件添加可执行权限;

4.启动nmon,添加crontab item;

5.如需停止nmon,可注释crontab item;

6.nmon开始运行后,每天在/home/centos/nmon/nmon_data下产生一个文件,文件名包含日期如bigdata4_190628_1828.nmon;

7.nmon数据文件定期备份定期清理;

每个烂锋标签页都展示了对某一指标如CPU、内存、网络、I/O的详细监控数据,需要重点关注的几个监控指标如下:

页面显示项主要有主机名,执行日期,系统cpu使用情况(蓝线),系统I/O情况(粉红线),其中坐标左纵轴为系统cpu(user%+sys%)使用率,横轴为运行时长(下图为一个小时),右纵轴为系统磁盘传输(Disk xfers),坐标下侧为统计信息:系统I/O情况(一个采集间隔内的平均值、最大值、出现最大值的时间),系统CPU使用情况等。

如果一个CPU被充分使用,CPU占用时间配比应为User%(65-70%),Sys%(30-35%),Idel%(0-5%)

如果Sys%占比过大说明系统进程本身占领大部分cpu资源,可考虑系统是否存在过多僵尸进程或者系统进程存在死循环等原因;

CPU Wait%占比过大说明可能唯此IO或内存方面存在瓶颈,可能是由于内存不够而引起频繁的的数据交换。

包括主机CPU使用情况汇总以及每个CPU的运行情况。

此处重点关注CPU_ALL页面。CPU_ALL页面可以看到如下图的CPU整体上在每个监控点的数据,包括User%、Sys%、Wait%、Idle%、Steal%、CPU%以及CPUs(cpu个数)及对应图表。

参数 | 说明

CPU Total| 执行间隔时间列表

User% | 采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)

Sys% | 采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)

Wait%| 采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Avg、Max)

Idel%|采集间隔内所有CPU处于空闲Time的占比(Avg、Max),此值和User%,Sys%,Wait%,Steal%之和等于1

CPU%| CPU总体占用情况,这个值通常等于User%+Sys%

CPUs | CPU核数,即 *** 作系统是多少核的

磁盘的读、写及I/O统计信息,系统各磁盘分区的读写情况。此处重点关注DISK_SUMM即可。

Disk total KB/s | 执行间隔时间列表

Disk Read KB/s| 采集间隔内磁盘设备的读速率

Disk Write KB/s| 采集间隔内磁盘设备的写速率

IO/sec | 采集间隔内磁盘整体平均每秒IO数

参数 | 说明

memtotal | 物理内指历迅存总大小,单位MB

swaptotal | 虚拟内存(即交换空间)的总大小

memfree | 剩余物理内存大小

swapfree | 剩余虚拟内存大小

cached | 物理内存中被cache占用的缓存大小

active | 在活跃使用中的内存大小

buffers | 文件系统缓冲区的大小

swapcached | 虚拟内存中被cache占用的缓存大小

inactive | 不常使用的内存大小

反映系统的网络运行情况,系统各个网络适配器读写的数据包数。此处重点关注NET页面。

NET页面显示系统中每个网络适配器的数据传输速率(千字节/秒)。

参数 | 说明

Network I/O | 执行间隔时间列表

Total-Read | 网络适配器每秒接收的数据包总大小(KB/s)

Total-Write(-ve) | 网络适配器每秒发送的数据包总大小(KB/s)

反映系统运行线程及等待切换的线程平均数。

记录nmon工具采集系统信息的时间点。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12249721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存