自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

7huaping的专栏

关注移动开发测试,测试新技术动向

  • 博客(88)
  • 资源 (7)
  • 收藏
  • 关注

原创 Python:使用 heapq 制作优先级队列

优先级队列是一种特殊的队列,其中每个元素都有一个优先级。队列中的元素按照优先级顺序排列,每次从队列中取出的都是具有最高优先级的元素。优先级队列广泛应用于各种场景,如任务调度、事件驱动模拟、图算法(如 Dijkstra 算法)等。heapq 是 Python 标准库中的一个模块,提供了实现最小堆(min heap)所需的各种函数。最小堆是一种特殊的完全二叉树,其中每个节点的值都不大于其子节点的值。最小堆非常适合用来实现优先级队列,因为堆顶元素始终是最小的元素,即具有最高优先级的元素。

2024-09-08 15:53:45 733

原创 使用Python的deque实现生产者-消费者队列

collections.deque是Python内置的一个双端队列,它支持两端高效地添加或删除元素。相比于列表(list),deque在两端的操作性能更优,特别是在需要频繁插入或删除元素的应用场景下表现尤为突出。虽然deque本身不是专门为生产者-消费者模式设计的,但通过适当的封装和扩展,它可以成为一个非常有效的工具。通过本文,我们了解了如何利用Python标准库中的collections.deque来构建一个简单但功能强大的生产者-消费者队列。

2024-09-08 15:09:16 345

原创 使用 pickle 序列化和反序列化:用copyreg解决对象变动后的兼容性问题

pickle 模块提供了多种序列化和反序列化的函数,其中最常用的有 pickle.dump 和 pickle.load。# 序列化对象到文件# 从文件中反序列化对象通过本文的学习,我们了解到 pickle 模块在序列化和反序列化方面的强大功能,同时也认识到当对象定义发生变化时,原有的序列化文件可能会变得不再兼容。为了解决这一问题,我们介绍了 copyreg 模块的使用方法,通过注册自定义的序列化和反序列化方法,可以有效地解决对象变动后的兼容性问题。

2024-09-08 14:55:54 658

原创 用 concurrent.futures 实现真正的并行计算

通过本文的学习,我们了解了 GIL 对 Python 多线程程序的影响,并学习了如何使用 concurrent.futures 模块中的 ProcessPoolExecutor 来实现真正的并行计算。通过对比不同方法的性能,我们可以看到多进程方法在 CPU 密集型任务中具有明显优势。此外,我们还展示了如何结合 asyncio 和 concurrent.futures 实现异步并行计算。希望这些内容能够帮助读者更好地理解和应用并行计算技术,提升程序的性能和效率。

2024-09-08 12:19:03 855

原创 使用协程实现高并发的I/O处理

协程是一种用户空间的轻量级线程,可以在单个线程内实现并发执行。与传统的多线程相比,协程的上下文切换开销更低,可以实现更高密度的并发任务。协程作为一种轻量级的并发机制,在处理 I/O 密集型任务时具有显著的优势。通过合理的使用协程,可以显著提高程序的并发性和响应速度。本文介绍了协程的基本概念、特点以及在实际应用中的具体实现方法。希望这些内容能够帮助读者更好地理解和应用协程,提升程序的性能。

2024-09-08 12:02:33 1122

原创 Python Tips:字典操作时使用 get 处理键不存在的情况

在处理字典中不存在的键时,推荐使用get方法而不是in或捕获KeyError。get避免KeyError:无需捕获异常。简洁的语法:代码更简洁、易读。更高的性能:减少不必要的条件判断和异常处理开销。通过本文的讨论,我们了解到get方法在处理字典中不存在的键时的优势,并展示了多个实际应用场景。希望这些内容能够帮助你在实际开发中更好地利用get方法,提高代码的效率和可读性。

2024-09-08 11:17:21 244

原创 Python: 使用 defaultdict 处理内部状态缺失的元素

是的,你可以传递任何可调用的对象作为工厂函数,包括自定义函数。通过以上讨论,我们全面了解了的优势及其在实际应用中的使用方法。希望这篇文章能够帮助你更好地理解和使用。

2024-09-08 11:03:55 696

原创 使用 functools.wraps 定义函数修饰器

functools.wraps 是一个非常有用的工具,可以确保函数修饰器正确地保留被修饰函数的元数据。通过使用 functools.wraps,我们可以避免因元数据丢失而导致的各种问题,使代码更加健壮和易读。以上几个例子展示了如何使用 functools.wraps 来定义常见的函数修饰器,包括日志记录、性能监控和输入验证。希望这些示例能够帮助你在实际开发中更好地利用函数修饰器。

2024-09-08 10:48:44 391

原创 通过 @classmethod 多态构造同一体系中的各类对象

在 Python 中,@classmethod 装饰器可以用于定义类方法,这些方法通常用于创建类的实例。通过 @classmethod,我们可以实现多态构造,即在不同的类中定义相同名称的类方法,从而实现统一的构造逻辑。示例说明假设我们有一个动物类体系,包括 Animal 基类以及其派生类 Dog 和 Cat。我们将定义一个 create_animal 类方法,用于创建不同类型的动物对象。

2024-09-08 10:38:20 425

原创 python中的元类(metaclass)

在 Python 中,元类(metaclass)是用来创建类的 “东西”。

2024-09-08 10:23:20 596

原创 Python中的魔法方法(magic methods 或 special methods)-4

Python 的序列和映射是基本的内置数据类型。列表、元组和字符串是序列的示例,而字典是映射类型的示例。您可以通过实现所需的特殊方法来创建自己的类 sequence-like 和 mapping类。为此,Python 定义了序列和映射协议。这些协议是特殊方法的集合。方法描述当您使用索引访问项目时调用,如 sequence[index].__len__()在调用内置 len() 函数以获取基础序列中的项数时调用当您在成员资格测试中使用带有 in 或 not in 运算符的序列时调用。

2024-09-07 17:52:19 1094

原创 Python中的魔法方法(magic methods 或 special methods)-3

在 Python 中,迭代器和可迭代对象是两种不同但相关的工具,当您需要迭代数据流或容器时,它们可以派上用场。在此方法中,您有一个条件,用于检查当前序列索引是否未达到 ._stop 值,在这种情况下,您可以递增当前索引以控制迭代过程。在以下部分中,您将学习如何使用特殊方法将自定义类转换为迭代器和可迭代对象的基础知识。在此方法中,您将检查提供的值是否为正数,在这种情况下,您将引发 ValueError 异常。否则,您将再次使用 .在这种情况下,您可以使用描述符来管理验证逻辑,其中包括检查提供的值是否为正数。

2024-09-07 17:38:53 680

原创 Python中的魔法方法(magic methods 或 special methods)-2

python魔法方法中的查看对象以及属性控制的一些方法介绍

2024-09-04 07:17:17 914

原创 Python中的魔法方法(magic methods 或 special methods)-1

Python 有多种类型的运算符,这些运算符是特殊符号、符号组合或指定某种计算类型的关键字。在内部,Python 支持具有特殊方法的运算符。例如,如前所述,.__add__()特殊方法支持加号运算符 (+)。在实践中,您将利用运算符后面的这些方法来实现所谓的运算符重载。注意:要更深入地了解运算符重载,请查看自定义 Python 类中的运算符和函数重载。运算符重载是指为运算符提供额外的功能。您可以使用大多数内置类型及其特定的受支持运算符来执行此操作。

2024-09-03 23:04:59 793

原创 conftest.py能够完成什么功能

以下是一个示例,展示了如何在。当运行 pytest 测试时,这个额外的信息将显示在测试报告的头部,添加了对当前测试环境的描述。钩子函数可以让你很方便地在整个测试过程开始时执行一些全局的操作,以确保测试环境的准备和一些必要的设置都已经完成,从而让测试过程更加可靠和可控。文件中定义一些 fixture 函数,这些 fixture 函数可以被在同一目录下的测试模块或子目录中的测试模块共享使用。钩子函数可以让你根据具体的需求对收集到的测试用例进行动态的选择或调整,这样可以更加灵活地控制测试用例的收集和执行过程。

2024-03-03 21:00:24 1019

原创 pytest.ini配置的作用和使用方法

是 pytest 的一个内置插件,用于在命令行中控制测试结果的日志输出。无论是通过命令行选项还是配置文件,这种设置可以帮助你定制化测试时的日志输出,使得你可以更好地观察测试结果和调试测试用例。文件,你可以定制化 pytest 的行为,包括设置命令行选项、标记测试用例、指定插件、控制测试收集和执行的行为等。文件是 pytest 测试框架的配置文件,用于配置 pytest 的行为和环境。选项可以定义测试标记,用于在测试用例中进行分类和选择性运行。等选项,用于控制 pytest 是如何收集和执行测试用例的。

2024-03-03 19:44:04 414

原创 Python:上下文管理之 __enter__, __exit__

python上下文管理with语句的实现使用

2023-08-27 11:24:34 389

原创 Python:使用线程池轻松处理多线程

通过使用线程池,您可以并发地处理队列中的多个任务,提高程序的执行效率。方法会自动将任务分配给线程池中的线程进行并发执行,并返回结果的迭代器。,该函数接受一个任务作为参数,并打印出任务的信息。方法,可以更简洁地处理队列中的多个任务,并且可以方便地获取任务的执行结果。方法来处理队列中的多个任务,您可以将任务函数和任务队列作为参数传递给。方法会按照任务在任务队列中的顺序返回结果,即使任务的执行顺序可能不同。,该函数接受一个任务作为参数,并打印出任务的信息。在上面的示例中,我们定义了一个模拟的任务函数。

2023-08-27 11:07:49 7110

原创 Python:在调用成员或属性之前运行方法

在Python中,设置属性的高级实现方法,@proper和内置函数__getattribute__

2023-08-27 09:19:24 202

原创 如何使用systrace检测性能问题?比如丢帧

7.在命令提示符或终端中键入以下命令,在Chrome中打开生成的跟踪文件:`chromium browser `将“<duration>”替换为要跟踪的持续时间(以秒为单位),将“<trace_file_name>”替换为由要赋予跟踪文件的名称。8.在Chrome中,您将看到事件的详细时间表,包括CPU和GPU活动、帧速率等。通过分析Chrome中的跟踪文件,您可以识别应用程序或游戏中的瓶颈或性能问题,并相应地进行优化。1.使用USB将您的Android设备连接到计算机。

2023-05-20 16:14:19 419

原创 ESP32实现自动浇水

使用土壤湿度传感器来实现自动浇水系统。ESP32开发板可以使用ADC引脚来读取传感器输出的模拟电压值,然后使用电路控制电磁阀或水泵等组件来自动控制水的流动。

2023-05-14 07:54:52 1404

原创 用python实现一个超大日志文件多搜索pattern搜索的需求

有个非常大的日志文件,比如说10G文本文件,可能其中有非utf-8的,搜索的pattern是分类存放的,比如分类1,搜索pattern,分类2:搜索pattern。如果更进一步的需求,要求合并相似的找到的文本,如何剔除打印中的如trace的行号,log的日期后再做如下处理,那一步需要根据实际情况来。搜索结果中需按分类存放,结果中需要把匹配行以及行号。定义,这里就不给出来。

2023-05-14 07:21:31 260 1

原创 手机测试常用shell脚本(高级版)

Q:我想实时的后台查询logcat,并且查询到了调用一个函数(callback) 在函数中调用响应操作,比如查询有界面弹出,可以消除弹出框,这个有很多用途,比如log查询到一个错误,可以将log开关打开抓到更多的log。Q:如果我测试完某个操作,想查询logcat中包含不同的关键字,比如A and B and C且这3个不在同一行。Q:我想提前结束脚本使用ctrl+C,但是我又想比如收集log,清理等工作在shell如何实现。Q:等待机器连接,如果连接不上超时返回。

2023-05-14 07:02:25 1476

原创 Python版本的温湿度+Nokia5110 display(SPI)

使用esp8266在nokiadisplay上显示dh11的温湿度信息

2022-11-26 19:08:48 948

原创 物联网之点灯app按键事件绑定,远程开灯

本文主要是使用点灯科技blinker app进行按键绑定的示例,在智能家居应用开发中,app控制家电开关是个比较典型的使用案例。绑定数据,当app按下button时,通过串口查看实践,button按下事件string为tap。远程开机绑定的函数,通过按键事件,可以开关灯,这些是智能家居中最常见的app控制电器开关。上文用的温湿度传感器的gpio口我改到了3,这样温湿度读取不影响观察远程开关的灯亮灭。按键本身会保存开关状态,默认为off,按下时会发送。保存的状态为on时,按下会发送。每次按下发送的指令为。

2022-11-06 16:04:23 3859

原创 物联网ESP8266之温湿度上传到点灯科技blinkerapp

本文主要对物联网常用场景,读取传感器数据然后反馈到app上查看。

2022-11-05 21:58:19 4242 3

原创 安装micropython到esp8266

硬件需求:软件:系统:windows/mac/linux,本人用ubuntu软件:python3.4+,本人3.8esptool。

2022-11-04 22:15:14 550

原创 ESP8266物联网开发小板开箱

今天到货一个小玩意,比arduino可玩性好,稳定性吗,还不知道。使用vscode安装插件PlatformIO插件,好软件呀,支持的太全了!物联网开发利器!选择我选的是ESP8266 ESP-12E反正能用,很多板子,需要自己根据自己的搜索一下即可,试试不行换个。写一个程序试试,上传—>就可以上传了,做了个网站,然后串口打印没问题,后面有空玩玩

2022-10-27 20:34:06 668

原创 Python中的一些高级函数和话题-1

python高级话题

2022-10-16 13:42:55 457 1

原创 python动态加载技术

提到python动态加载技术,我们需要聊上几个话题:1)反射技术2)模块动态加载importlib3) callback(函数名传递)--不完全算是吧动态。

2022-10-16 10:53:37 2153

翻译 人脸检测综述

人脸检测是人脸识别、人脸属性分类、人脸编辑、人脸跟踪等任务必不可少的早期步骤,其性能直接影响到[Deep Face Recognition: A Survey]、[Biometric Recognition Using Deep Learning: A Survey]等任务的有效性。尽管在过去的几十年里,不受控制的人脸检测取得了巨大的进步,但在野外准确高效的人脸检测仍然是一个公开的挑战。这是由于姿势的变化、面部表情、比例、光照、图像失真、面部遮挡等因素造成的。

2022-08-21 21:26:36 4967

翻译 log分析前沿研究进展:面向可靠性工程的日志自动分析技术综述

本文是翻译节选,如需要请找原论文作者:SHILIN HE, Microsoft Research(一作)日志是由软件源代码中的日志语句生成的半结构化文本。近几十年来,软件日志在许多软件系统的可靠性保证机制中已经成为必要的,因为它们通常是记录软件运行时信息的唯一可用数据。随着现代软件的大规模发展,日志的数量迅速增加。为了使现代软件日志在可靠性工程中得到有效和高效的应用,对日志自动化分析进行了大量的研究。

2022-08-21 09:28:49 2924

原创 RobotFramework框架系列 – 运行策略篇(乱序执行)

运行测试用例分为顺序执行,乱序执行,乱序里面也有很多种执行方法执行顺序其实就是一种运行策略,要求我们的测试用例之间依赖性不能有。根据rebot或pybot的帮助文档可以得到:-X --exitonfailure       Stops test execution if any critical test fails.                          Short ...

2018-07-21 08:50:06 1042

原创 RobotFramework框架系列 – 变量运算篇

    ${numbers}    Set Variable    ${3*5}    ${numbers}    Set Variable    ${3/5.0}    ${boolean}    Set Variable    ${true*2}    ${boolean}    Set Variable    ${true*4}    ${empt}    SetVariab...

2018-07-21 08:49:27 5747

原创 RobotFramework框架系列 – 变量篇

比起Python控制变量,RF会很方便,所以我们必须熟悉它,适应它如果对比Python来学的话,会事半功倍变量的种类变量名包含变量种类标识符($, @, &, %),大括号({,})和变量名。大括号是强制使用的。Robot Framework 中的变量和关键字相似,是大小写敏感,但对空格和下划线是忽略的。标量Scalar标量是指${},这个有点像shell中的变量引...

2018-07-21 08:48:44 4191

原创 RobotFramework框架系列 – TAG选择运行篇

在测试过程中,肯定会遇到选择测试用例的事情,所以我们将我们的测试用例打上不同的Tag,然后根据测试需要运行不同的Tag在运行的时候我们我们的Tag支持简单的模式匹配,也支持TAG逻辑运算,比如And,or,Not等简单的模式匹配有: * 可以匹配空字符和任意字符,比如 Tag* 就是以Tag,Tagx,Tagxx,。。。。 ?可以匹配任何单个字符, 比如T?G, 就可以匹配...

2018-07-21 08:44:49 2566

原创 RobotFramework框架系列 – 运行参数篇

我们前文说了,RF有很强大的参数运行rebot –help 可以得到如下的Option,我把常用的黄色标注,当然大家可以根据实际使用中进行选择Options======= -R --merge When combining results, merge outputs togetherinstead of putting them under a new top level...

2018-07-21 08:44:12 4203

原创 RobotFramework框架系列 – 介绍篇

RobotFramework是一个基于Python语言的,可扩展的关键字驱动的自动化测试框架,用于验收驱动的测试(ATDD)Robotframework除了自带的库之外有很多扩展的库,这些库可以在Robotframework官网里找到http://robotframework.org/#Libraries你也可以到github搜索,肯定有所收获。为何使用RobotFramework...

2018-07-21 08:43:04 16608

转载 gerrit安装与配置

wget https://www.gerritcodereview.com/download/gerrit-2.15.warjava -jar gerrit*.war init --batch --dev -d ~/gerrit_testsite出现如下:Generating SSH host key ... rsa(simple)... doneInitialized /ho...

2018-07-21 08:37:41 1143

原创 ubuntu16.04怎样才能安装 wxpython 2.8.12.1

使用sudo apt install python-wxgtk2.8 根本找不到包关于RIDE需要wxpython16.04里面需要做如下才能安装 wxpython 2.8.12.1 echo "deb http://cz.archive.ubuntu.com/ubuntu trusty main universe" | sudo tee /etc/apt/sources.list.d...

2018-07-21 08:36:16 2355 1

软件测试计划模板

包含内容: 1. 项目简介 3 1.1 项目背景 3 1.2 项目范围 3 1.3 术语 3 2. 参考文档及测试提交的文档 3 2.1 测试参考文档 3 2.2 测试提交的文档 3 3. 测试资源 4 3.2 软件环境 4 3.3 硬件环境 4 3.4 特定的测试环境要求 4 4. 测试进度 5 5. 测试内容 5 6. 测试准则 6 6.1 进入准则 6 6.2 暂停或退出准则 6 6.3 测试手段及测试方法说明 6 6.4 测试重点说明 6 7. 质量计划说明(产品质量KPI) 7 7.1 质量计划说明 7 7.2 明确质量目标或阶段质量目标 7 8. 风险分析 8 9. 测试策略及方案 8 9.1 总体测试策略 9 9.2 阶段性测试策略 9 9.3 测试执行策略 9 9.4 测试方案 10

2017-11-03

Android APP通用测试用例及测试策略

Android APP通用测试用例及测试策略,总计85条case,大家设计android测试用例可以参考这些通用的测试用例。

2017-11-03

( 与孩子一起学编程.mobi )适合有孩子

电子书,是导入到kindle里,( 与孩子一起学编程.mobi )适合有孩子

2017-10-28

Programming Your Home Automate with Arduino, Android, and Your Computer

Programming Your Home Automate with Arduino, Android, and Your Computer 智能家居,英文原版

2017-10-28

cudnn 8.0 win10 x64 v6.0 配合cuda8和tensorflow1.3使用

cudnn 8.0 win10 x64 v6.0 配合cuda8和tensorflow1.3使用

2017-10-28

鼎信诺5000

鼎信诺审计软件,非常强大,请购买加密狗配合使用

2015-07-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除