需求解决方案:速卖通商品数据采集器
优采云 发布时间: 2022-10-31 14:31需求解决方案:速卖通商品数据采集器
速卖通产品数据采集器(AliexpressProducts)是速卖通平台的一款专用产品信息采集软件,支持搜索URL、分类URL、商店产品URL等产品列表URL和直接产品URL,可以一一放入采集界面的多行文本框中。
该软件支持多变体文本和图像采集,采集可以根据价格公式和变体价格修改结果,最后可以导出产品批量表。
有关详细信息,请参阅: 新电源软件 - 速卖通产品数据采集器 V1.0.0
最佳实践:基于Python实践性能指标结果自动采集工具
由51Testing软件测试网出品
背景
在性能测试的过程中,经常需要对服务器的性能进行监控,并记录这些性能指标的结果。
无论是数据库服务器还是云下的应用服务器,都可以使用 nmon 进行监控,设置间隔和次数,并将性能指标保存为 nmon 文件。并通过Excel插件Nmon_Analyzer、Java GUI工具nmon Visualizer等工具,读取nmon文件内容,分析采集的结果。
但是,当被监控的服务器数量很大时,采集性能指标会导致依次生成多个nmon文件,这需要一定的时间。同时,手动读取和记录数据也可能会导致记录错误时偶尔出现错误。
因此,我们可以尝试使用我们熟悉的编程语言,比如Python,开发一个简单易实现的工具,对nmon文件中的性能测试指标进行自动采集性能测试。
工具介绍与设计
该工具实现的基本思想是对指定路径下的nmon文件逐一扫描,根据nmon文件的内部格式提取目标性能指标数据,然后对提取的数据进行处理得到结果,并自动将结果保存到新生成的数据中。生成一个 Excel 文件。
为了更直观的获取用户输入的nmon文件路径和结果保存路径,我们可以写一个GUI界面,使用界面上的文本输入框获取用户的输入,使用界面上的按钮触发这个 采集 事件。
图1 工具设计流程图
工具实现
(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 代码 - 鼠标点击事件
总结
该工具是基于Python语言的简单实践,可以自动批量提取nmon文件中的性能指标结果,并可以按照这个思路根据需要修改或扩展工具的功能。
使用此工具自动执行结果采集相比手动读取值节省时间,并避免记录过程中的错误意外错误,有助于提高准确性和测试效率。
结尾