pycharm-debug 模式修改代码无需重新启动程序用法

python-reloadium 热加载用法介绍

背景描述

PyCharm 热加载调试时,运行时修改代码无需重新启动程序即可更新所做的修改

简介:

  • 程序出现错误,修改错误代码后必须要重新执行整个程序

详细说明:

  • 在调试 python 程序时经常会出现这样的情况,代码执行到某一处时出现错误,或者与预期的的结果不一致,这时候发现是某一行写错了,我们会先对这一行

    进行简单修改并验证,然后再重新启动程序重头执行,再看看还有没有其它错误,然而如果在这一行之前执行了大量的费时操作,我们必须一直等到运行到修

    改处再看后面的代码是否还有误,浪费了大量的时间来重复执行前面已经能够保证正确的代码。而 python 作为一个解释性语言,相比于编译型语言,必然更

    容易实现热加载,即更改函数或程序后不重新执行程序而执行代码执行的修改。

Reloadium 高级热重载工具:

  • ReloadiumPython 中用于高级热重载的工具。

  • 它允许您立即应用代码更改并实时查看结果。

  • 它包含与许多流行的库和框架集成的内置插件。

  • 通过在代码更改时重新加载 Web 浏览器页面或使用数据库事务包装框架重新启动来提供无缝的开发体验。

安装 Reloadium

1. 方式一

PyCharm 插件市场搜索 Reloadium 进行安装即可 ( 推荐使用 方式一

在这里插入图片描述

2. 方式二
要求

Reloadium 适用于**Python 3.6+ **和基于 LinuxWindows、**MacOs **的操作系统。

​ 使用 Reloadium 会增加难以察觉的开销,并且不会在后台执行任何操作。

​ 启动程序后,Reloadium 等待源代码更改并相应地更新程序。

独立安装

Reloadium 可以用作独立库,但强烈建议在使用像 PyCharm 这样的 IDE 时使用提供的插件。

​ 可以通过运行以下命令使用 pip 安装 Reloadium 包:

pip install reloadium

​ 然后只需在脚本路径前添加 “reloadium” 即可运行

reloadium run example.py

​ 如果正在运行的模块添加标志 -m

reloadium run -m example

更新

Reloadium 包可以像任何其他包一样使用以下命令进行更新:

pip install reloadium --upgrade

实现效果

result/=0 是错误的会报异常,因为除数不能为 0,我们不需要重启代码,修改代码文件后 ctrl+s 进行保存即可完成热加载

在这里插入图片描述

使用

  1. 之前我们调试程序使用 绿色 的调试按钮,现在点击 橙色 的调试按钮即可开启热调试功能

Tips. 安装好 reloadium 插件以后点击 run/debug 按钮会有小视频教学

在这里插入图片描述

  1. 修改文件后 ctrl+s 保存即可,程序将会适当的重新执行更改的地方并返回至修改后的第一个断点处

示例:

Reloading current function

​ 重载当前函数

Reloadium 将在更改时重新运行当前函数,无论代码是否正常工作,开发人员都会获得即时反馈

在这里插入图片描述

Reloading Module Frames

​ 重新加载模块框架

​ 相同的机制可以应用于模块框架

在这里插入图片描述

Multi file reloading

​ 多文件重载

Reloadium 能够在整个项目中重新加载文件
在这里插入图片描述

Correcting mistakes

​ 纠正错误

​ 不要为了发现你犯了一个简单的错误而浪费时间重现错误,Reloadium 将在重新加载功能期间处理错误并让您修复错误。

在这里插入图片描述

Profiling

​ 剖析

Reloadium 显示功能帧的进度并提供时间信息。

​ 分析器仅从当前调试功能中的行中收集时序信息,使其成为日常使用的极其优化和轻量级的解决方案。
在这里插入图片描述

Django Reloading views

​ 重新加载视图

Reloadium 将在保存时热重载视图并刷新页面。

在这里插入图片描述

Django Reloading database objects

​ 重新加载数据库对象

Reloadium 将回滚数据库更改以防止在重新加载当前函数后创建不需要的对象。
在这里插入图片描述

Flask Page refreshing

​ 页面刷新

Reloadium 将热重新加载烧瓶应用程序并在保存时刷新页面。

​ 可以实时看到更改的内容,使 Web 开发更加顺畅。

在这里插入图片描述

Sqlalchemy Reloading database objects

​ 重新加载数据库对象

Reloadium 将回滚数据库更改以防止在重新加载当前函数后创建不需要的对象。

在这里插入图片描述

Hot reloading pandas objects

​ 热重载 pandas 对象

Reloadium 热重新加载 pandas 对象,为数据科学处理复杂的数据帧再简单不过了。
在这里插入图片描述

Hot reloading PyGame applications

​ 热重载 PyGame 应用程序

Reloadiumpygame 无缝协作,启用热重载后,您的游戏开发周期将大大缩短。

在这里插入图片描述

  1. 默认状态下只会监控你运行的文件和当前工作目录下的文件更改进行进行热更新,如果还想监控工作目录外引用的文件,那么可以在设置中添加,如下图所示
    在这里插入图片描述

拓展

更多操作及用法请查看官网文档 https://reloadium.io/

<think>嗯,用户想在PyCharm里用uiautomator2写自动化测试脚本。首先,我得回忆一下uiautomator2的基本用法和安装步骤。根据引用[1],安装是通过pip install --pre uiautomator2,然后初始化python -m uiautomator2 init。这一步可能需要确认用户是否正确安装和初始化了环境。 接下来,用户可能需要在PyCharm中配置项目环境,确保虚拟环境中安装了uiautomator2。如果用户之前用命令行安装过,可能需要在PyCharm里设置解释器路径,或者通过IDE的终端重新安装。另外,初始化设备可能需要连接手机或模拟器,用adb devices检查设备是否识别,引用[3]里提到的deviceName可能在这里用到。 然后,编写脚本的结构可能需要导入uiautomator2模块,连接设备,然后执行操作。比如d = u2.connect(),然后使用d.click等方法。这里需要提醒用户注意设备连接方式,USB还是WiFi,是否需要开启调试模式。 还有,测试用例的组织,用户可能想用Unittest或Pytest框架,引用[2]提到了Unittest和HTMLRunner,可能需要指导用户如何组织测试套件,生成报告。另外,元素定位工具,比如uiautomatorviewer,引用[2]提到使用Android SDK的工具,用户可能需要配置环境变量或者指定路径。 可能的问题点包括依赖安装失败、设备连接问题、元素定位不准确、脚本执行权限等。需要逐步引导用户检查这些方面,比如确认pip版本,是否使用了正确的Python环境,设备是否授权USB调试,以及是否安装了必要的驱动程序。 最后,调试和运行脚本部分,用户可能在PyCharm中直接运行,或者配置运行配置。需要提醒用户处理可能的异常,比如连接超时或元素未找到,并加入异常处理机制。此外,性能优化建议如减少不必要的截图,合理使用等待时间,可以参考引用[1]中的初始化步骤和相关配置。</think>### 步骤说明:在PyCharm中使用uiautomator2编写自动化测试脚本 #### 1. 环境准备 - **安装uiautomator2库** 在PyCharm的终端中执行以下命令: ```bash pip install --pre uiautomator2 ``` 安装完成后,初始化设备支持文件: ```bash python -m uiautomator2 init ``` 此步骤会下载必要的守护程序到连接的Android设备[^1]。 - **连接设备** 确保Android设备已开启USB调试模式,并通过以下命令验证连接: ```bash adb devices ``` 如果使用模拟器(如夜神或逍遥),需确保adb服务已正确关联[^1][^3]。 --- #### 2. 创建Python项目 - **新建PyCharm项目** 创建纯Python项目,选择已安装uiautomator2库的解释器(建议使用虚拟环境)。 - 检查解释器路径:`File > Settings > Project: <名称> > Python Interpreter` - 确保`uiautomator2`出现在已安装包列表中。 --- #### 3. 编写测试脚本 ```python import uiautomator2 as u2 # 连接设备(通过设备序列号或IP) d = u2.connect("emulator-5554") # 替换为实际设备ID或IP # 启动应用(以设置应用为例) d.app_start("com.android.settings") # 操作示例:点击"显示"选项 d(text="显示").click() # 验证结果 if d(text="亮度").exists: print("测试通过") else: print("测试失败") # 关闭应用 d.app_stop("com.android.settings") ``` --- #### 4. 元素定位辅助 - **使用工具定位元素** 运行Android SDK中的`uiautomatorviewer.bat`(路径:`..\sdk\tools\`),连接设备后可查看界面元素的`resourceId`、`text`等属性[^2]。 ![uiautomatorviewer截图示例](无需实际图片,仅说明) --- #### 5. 运行与调试 - **直接运行脚本** 在PyCharm中右键点击脚本文件,选择`Run`。 - **处理常见错误** - **设备未连接**:检查`adb devices`输出,确认设备已授权 - **元素定位失败**:使用`d.debug=True`开启调试模式,查看详细操作日志 - **超时问题**:添加隐式等待`d.implicitly_wait(10)` --- #### 6. 扩展建议 - **集成测试框架** 结合`unittest`或`pytest`组织测试用例,例如: ```python import unittest class TestSettings(unittest.TestCase): def setUp(self): self.d = u2.connect() def test_display(self): self.d(text="显示").click() self.assertTrue(self.d(text="亮度").exists()) def tearDown(self): self.d.app_stop_all() ``` 使用`HTMLTestRunner`生成可视化报告。 --- ###
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I believe I can fly~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值