
python
文章平均质量分 67
strayeagle
这个作者很懒,什么都没留下…
展开
-
python字段反转去重
最近在写script支持cobbler全自动部署OS,由于profile与system对应关系是1:N,下次执行自动安装前会清理掉对应的profile与system,但当有其他人使用了script生成的profile后,就形成了一个profile对应多个system,回头再删profile时出错,因为这个profile有被其他system占用,删除失败了。解决方法就是找处profile关联的system,先删除掉system,再删除profile。原创 2024-09-19 10:02:52 · 216 阅读 · 0 评论 -
统计两个时间的时间差
最近在跑cosbench,由于OS根分区空间满,导致cosbench任务失败,误删了一部分cosbench archive记录,但controller html页面还是能展示这部分数据记录的片段信息,比如任务的提交时间,起始时间与结束时间,而每个cosbench 任务写数据的总量可以从定义的xml中获取到,需要手动计算一下起止时间差,统计总量/时间差,就可以得到这轮任务的平均写速度了。本文介绍通过script计算前后两个时间差,每次都记不住,这次写下来,避免每次都去查资料重新写script。原创 2024-09-19 09:53:38 · 228 阅读 · 0 评论 -
API响应慢问题复现
现在测试有个需求,需要验证某个API响应时间,之所以关注这个API时间,是因为有时响应太久,超过30s,估计这个时间客户也无法容忍。原创 2024-09-18 09:22:07 · 470 阅读 · 0 评论 -
VD与RAID分区对应关系
环境中创建了VD,lsblk可以看到创建好后的分区信息,如何获取分区与RAID VD之间的对应关系呢,比如/dev/sdc分区,对应RAID组哪个VD?原创 2024-09-18 09:20:52 · 503 阅读 · 0 评论 -
VD与RAID分区对应关系
环境中创建了VD,lsblk可以看到创建好后的分区信息,如何获取分区与RAID VD之间的对应关系呢,比如/dev/sdc分区,对应RAID组哪个VD?原创 2024-09-18 09:16:07 · 225 阅读 · 0 评论 -
控制keepalive VIP漂移范围
产品有配置keepalive功能,但该功能目前仅通过priority来控制VIP在不同节点间漂移,此处的不同节点,是集群内部的所有节点。我们先看看下各个节点(以3节点为例),keepalive.conf内容信息,参考如下:== node243shellpriority 3bond112.7.3.89== node244shellpriority 2bond112.7.3.89== node245shellpriority 1bond112.7.3.89。原创 2024-09-18 09:07:49 · 425 阅读 · 0 评论 -
更改pip&easy_install默认安装源
pip默认安装源来自国外,很多时候由于墙的原因,导致下载很慢,或者超时,为了解决这个问题,尝试修改了pip默认安装源(具体操作下文介绍)。但在更改默认源后,如果被安装的包有依赖,需要先安装依赖的包,但这个依赖包还是使用的默认源。本文介绍如何解决这些问题。说明:本文以Ubuntu OS为例进行文档描述。原创 2024-09-14 18:10:10 · 1032 阅读 · 0 评论 -
Put S3 objects with metadata
产品引入keepalive,做了HA,在设置了浮动IP情况下,观察测试过程中浮动IP所在节点发生异常(如宕机,断网,keepalived服务挂掉等情况)业务中断时间,为此写了如下测试脚本,通过浮动IP,模拟并发/批量上传S3 对象文件。原创 2024-09-14 18:09:26 · 354 阅读 · 0 评论 -
基于Keepalive测试S3浮动IP切换对业务中断时间
之前一直用nose完成了产品的1000多个自动化用例,再来学习一下pytest。本文基于Ubuntu16.04,介绍pytest+requests+allure的安装与使用,并结合产品,给出具体示例。原创 2024-09-14 18:07:39 · 1312 阅读 · 0 评论 -
Nose html report 模板调整
网上找到了nose-html-report的另外一个模板,样式看着还可以,做了一些修改和调整,更契合自己的审美需要,现放出来.目录下的report2.jinja2 和目录下的__init__.py,并删除掉pyc文件。原创 2024-09-14 18:06:47 · 155 阅读 · 0 评论 -
基于Nose Framework做分布式存储产品自动化
自2018-05-01提交第一个commit以来,在不影响正常测试工作release版本情况下,断断续续的持续了1年8个月的自动化开发在今天(2019-12-31)收尾了,总测试用例数为1310个,一路走来深有感慨。。。。。。虽然收尾了,但后期版本功能发生变化,或者用例开发过程中有一些bug未考虑到导致用例执行失败的,还是需要对用例进行修改、优化,总之,一个产品自动化的完善,需要一个循序渐进的过程,持之以恒,总会渐变渐好!原创 2024-09-14 17:59:20 · 1739 阅读 · 0 评论 -
统计cosbench每个任务的IOPS和耗时
近期针对前方客户提出的具体S3测试要求,测试了一下S3性能,使用的是cosbench工具。在测试过程中,排除客户的要求外,我们自身也想知道,当前硬件条件下,每间隔1,000,00,00个object,IOPS和耗时是多久,比如:1到1千万,1千万到2千万,。。。1亿到1.1亿个object, and so on。原创 2024-09-13 09:51:58 · 245 阅读 · 0 评论 -
nose进度条中展示执行用例数与总数
在使用nose 插件时,发现这个插件只能显示进度(nose-progressive),并不知道当前执行多少个用例,执行到哪个了,如下图所示:这里源码有个问题,同时使用高亮(nose的 colorama 和 walkingnine-colorunit)和进度,会导致高亮和进度在用例执行结果信息输出时,两部分信息展示混杂在一起,已经修改源码解决,安装后无需做任何调整。由于只能看到一个进度条,无法知道当前要执行多少个用例,以及执行到了第几个用例,再次修改之。在进度条前面,显示已执行用例数(包含当前正在执行的用例)原创 2024-09-13 09:50:10 · 476 阅读 · 0 评论 -
消除pylint warn/error
在写pytest用例期间,使用pylint检查代码质量,出现了一些这样或者那样的pylint warn/error,如何消灭这些warn/error,本文介绍一个unexpected-keyword-arg warn的消除方法。原创 2024-09-13 09:48:30 · 225 阅读 · 0 评论 -
Summary of S3 Sample
本文章著作权归作者所有,任何形式的转载都请注明出处。来源: Transcendent。文章作者: Gavin Wang。原创 2024-09-13 09:47:56 · 220 阅读 · 0 评论 -
S3 placement to create bucket
最近存储产品开始支持多个S3 Placement了,即上传S3 Object,默认存放到Default S3 Placement,如果有其他S3 Placement的存在,需要指定具体的S3 Placement名称,为此写了一测试脚本方便测试验证此功能。原创 2024-09-13 09:46:37 · 293 阅读 · 0 评论 -
Python中的append()和extend()方法介绍
在Python中,append()和extend()是两个用于向列表添加元素的方法,但它们之间存在一些关键的区别。本文将详细解释这两个方法的不同之处,并提供示例以帮助理解它们的用法。原创 2024-09-12 15:28:06 · 565 阅读 · 0 评论 -
S3 boto set content from filename
自动化测试ceph S3 object时,需要上传不同的文件到不同的目录 与子目录下,并展示目录以及目录下子文件是否正确,为此先写了一个调试脚本,调试完毕后再集成到自动化测试框架中。原创 2024-09-12 15:27:32 · 499 阅读 · 0 评论 -
python json、ujson、orjson性能大比拼
ujson(Ultra JSON)通过使用 C 语言编写的优化代码来提高性能,是一个速度更快的 JSON 库。为了比较 json、ujson 和 orjson 的性能,我们可以编写一个 benchmark 脚本来对每种库的序列化(转换成 JSON)和反序列化(从 JSON 转换回来)进行测试。json 是 Python 内置的 JSON 处理库,足够通用且易于使用,但可能在处理非常大的数据或者要求高性能的场景中不是最佳选择。ujson是json的3倍性能,orjson是json的6倍性能。原创 2024-09-12 15:26:56 · 1285 阅读 · 0 评论 -
nose-html-reporting plugin HTML报告排序
在Ubuntu 14.04.5 LTS系统使用nose生成测试报告时,使用了nose-html-reporting这个插件,但这个插件,对产生的测试报告是不排序的,比较乱,鉴于此,调整一下源码,使得测试结果能够排序。为什么要排序?排序后,能够方便QA排查失败用例是最初哪一个用例失败导致的,解耦用例间关系,尽可能的确保每个测试用例的独立性。在apt archive目录(/var/cache/apt/archives/)看到,使用的是 nose-html-reporting-0.2.3.tar.gz。原创 2024-09-12 15:26:23 · 374 阅读 · 0 评论 -
python zip 函数介绍
Python 提供了一个名为 zip() 的内置函数,它是处理并行迭代的利器。在数据处理、机器学习预处理,甚至是日常编程任务中,zip() 函数常被用来将多个可迭代对象(如列表、元组、字典等)中对应的元素打包成一个个元组,然后返回由这些元组组成的迭代器。zip() 函数是Python编程中一个简洁而强大的工具,可以优雅地解决许多和并行迭代相关的常见问题。它不仅使代码更加Pythonic,还具有很高的灵活性,是处理多个序列数据时不可或缺的一部分。不过,掌握其特性和使用场景是发挥其最大功效的关键。原创 2024-09-12 15:25:36 · 492 阅读 · 0 评论 -
memory_profiler监测Python代码的内存使用情况
是一个Python模块,用于监测Python代码的内存使用情况。它可以帮助开发者了解代码在运行时的内存消耗情况,并通过逐行分析帮助识别内存泄漏或不必要的内存占用。这对于优化程序,特别是大型应用或数据密集型任务来说非常有用。除了之外,还有其他一些工具可以帮助开发人员在Python。原创 2024-09-12 15:24:22 · 674 阅读 · 0 评论 -
Python Tips and Tricks
对于Python2的用户,langconv(简繁转换)和zhconv(更适合网络爬虫)是历史上曾被较广泛使用的库,这两个库基于MediaWiki的繁简转换表实现,但它们在Python3上可能需要做一些修改才能使用。根据你的需求,你可能需要只找到第一个匹配的文件,或者返回所有匹配的文件列表。Python内置函数zip()是一个生成器,用于将两个或更多个可迭代对象的元素配对生成新的可迭代对象,即生成一个元组的迭代器,其中第i个元组包含来自每个参数序列或可迭代对象的第i个元素。原创 2024-09-12 15:22:22 · 1065 阅读 · 0 评论 -
nose测试用例可指定循环次数
编写nose 自动化测试用例时,有些场景需要重复循环运行,才有可能踩到Bug,为了让nose 用例能够支持循环运行,特意写了一个装饰器,能够指定nose测试用例的循环次数。原创 2024-09-12 15:19:35 · 274 阅读 · 0 评论 -
给nose写一个类似Robot Framework的Wait Until Keyword Succeeds
由于产品是异步请求,往往一个request下去,只是将某些信息写入到了KVStore中,之后由daemon读取KVStore进行判断是否有发生变化,如果有变化,daemon才采取行动。这里在写自动化校验设置是否apply下去,以及apply下去后是否有生效,就不能靠time.sleep来做了,主要问题是:不确定要等待多久,等待久了,感觉是浪费时间,尤其用例很多的情况下,严重影响了用例的整体执行时间;等待短了,又没有成功的apply下去,或者apply下去了但还没有具体生效。原创 2024-09-11 10:28:05 · 337 阅读 · 0 评论 -
List 3 object from Bucket
因为要调测ceph S3相关参数,观察参数调整对的 影响,因此写了如下脚本辅助测试。原创 2024-09-11 10:12:02 · 416 阅读 · 0 评论 -
Python文件操作:大文件的读
上一篇介绍了文件的open与 with open的区别,此篇介绍下如何读取大文件,避免MemoryError之类的错误(比如说VM内存4G,读取10GiB大小的文件)。原创 2024-09-11 10:07:13 · 394 阅读 · 0 评论 -
Python文件操作:‘with open()‘与‘open()‘的区别
在Python中,文件操作是非常常见的任务,Python提供了open()函数和with语句。与open()在文件操作中有什么区别呢?open()原创 2024-09-11 10:05:36 · 947 阅读 · 0 评论 -
Put 1Million S3 objects to bucket
本文章著作权归作者所有,任何形式的转载都请注明出处。来源: Transcendent。文章作者: Gavin Wang。原创 2024-09-11 09:54:13 · 249 阅读 · 0 评论 -
Advanced python functions
函数名描述语法使用示例返回值类型map()对可迭代对象的每个元素应用给定的函数,并以迭代器形式返回结果。map对象(迭代器)filter()从可迭代对象中过滤出那些使给定函数返回True的元素,并以迭代器形式返回这些元素。filter对象(迭代器)reduce()使用给定的函数将一个可迭代对象的元素累积地应用,从第一个元素开始,后续每次应用到前一次的结果上,最终将序列减少为单一的值。原创 2024-09-10 09:48:15 · 571 阅读 · 0 评论 -
Upload and download S3 Big metadata
因应标,要求支持64M大小的metadata,所以南京Office测试一下,如何给上传一个比较大的metadata。原创 2024-09-10 09:47:38 · 471 阅读 · 0 评论 -
浏览器中header信息转换为json
前言当写API自动化的时候,在构建自动化测试框架之初,总会碰到要把浏览器中访问对应产品的header信息写入到requests或者是httpx的header中,方便后续构造HTTP请求时能够携带正确的header信息到产品,从而实现类似诸如登录会话保持。这里需要从浏览器中拷贝下来当前产品的header信息,然后一个一个的贴到封装的header代码初始化的地方,虽然工作量比较小,但我这里还是写了支script,方便我完整的将header信息放到初始化处,免得少贴了内容,来来回来一遍又一遍的执行代码调试原创 2024-09-10 09:46:24 · 780 阅读 · 0 评论 -
python ujson介绍
ujson 是处理 JSON 数据的高性能库,因此尤其适合于性能要求较高的应用,如大数据处理、实时系统等。它易于使用,因此几乎可以无缝替换内置的 json 模块,让开发者可以在不牺牲代码可读性的情况下获得更佳性能。更多关于ujson信息, 请参考官方链接。来源: Transcendent文章作者: Gavin Wang文章链接:python ujson介绍 | Transcendent本文章著作权归作者所有,任何形式的转载都请注明出处。原创 2024-09-10 09:44:08 · 697 阅读 · 0 评论 -
Slow to open CIFS
本文章著作权归作者所有,任何形式的转载都请注明出处。来源: Transcendent。文章作者: Gavin Wang。原创 2024-09-09 09:46:32 · 177 阅读 · 0 评论 -
python jsonpath解析json数据
首先,要理解JSONPath,我们需要从它的名字开始。JSONPath名字的由来是基于正是类似XPath的查询语言,不过JSONPath是用来查询JSON数据的。JSONPath通过清晰、易读的查询表达式,为遍历复杂的JSON数据提供了简单方便的方式。通过使用JSONPath,你可以轻松查询和提取JSON数据中你感兴趣的部分。JSONPath是处理JSON数据时非常有力的工具,特别是在你需要查询和提取数据的场合。它可以帮助你快速定位到你感兴趣的数据,无论这些数据是嵌套的还是在大型的JSON结构中。原创 2024-09-09 09:42:56 · 1024 阅读 · 0 评论 -
python正则
模块来实现的,这个模块提供了一系列功能,用于字符串搜索和操作,给出了一种灵活的方式来匹配指定模式的文本。re.match():从字符串的开始匹配,如果不在开头匹配成功则返回None。re.findall():找到正则表达式匹配的所有子串,并以列表形式返回。re.search():扫描整个字符串,返回第一个成功匹配的匹配对象。re.S或re.DOTALL:使.匹配任何字符,包括换行符。记得总是对你的正则表达式进行测试,以确保其按预期工作。re.sub():用于替换字符串中的匹配项。原创 2024-09-09 09:41:16 · 1302 阅读 · 0 评论 -
APP性能数据收集操作指南
执行src目录下run_performance.py,即可进行性能数据的收集工作,在数据收集期间,请手工进行app端的功能测试,这样的数据采集才具有意义。集成monkey功能, android测试工作中常用测试脚本,以及在手工测试app端功能时,自动收集相关数据,并生成HTML报告。src目录下,执行run_monkey.py,可调用monkey命令进行稳定性测试,产生的日志信息记录在report目录下。(4)处理获取数据,写入文本文件,同时入库(SQLIte)(5)绘曲线图,并生成HTML测试报告。原创 2024-09-08 20:47:06 · 1235 阅读 · 0 评论 -
消息网关组性能数据收集
之前在网关测试组,每个迭代版本都需要进行性能测试,每次测试,除去环境部署外,最大的工作就是性能数据的收集以及分析、绘图了。做成一个小工具,支持组内所有产品,根据配置文件的设定,自动进行数据的收集,通过excel宏,分析性能数据,并绘制成图在excle中展示。原创 2024-09-07 10:04:31 · 338 阅读 · 0 评论 -
接口自动化测试用例分布统计
统计了接口自动化测试用例分布,生成html报告原创 2015-08-21 09:01:33 · 1430 阅读 · 0 评论 -
接口自动化测试框架设计
自己设计的接口自动化测试框架,以及测试用例的编写,生成HTML测试报告,并集成到jenkins,完成接口自动化测CI原创 2015-08-21 08:49:13 · 6232 阅读 · 0 评论