自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 UI自动化-下拉元素被隐藏无法直接进行select选择情况解决

问题:由于display: none属性隐藏了下拉选择,导致无法被select选中。方法一:直接点击的方式避开,这个方法最粗暴快捷,但是如果无法成功则选择方法二。方法二:JS直接赋值,绕过前端交互。

2026-01-30 23:15:07 189

原创 UI自动化-下拉选择框多级联动情况进行选择

本文介绍了两种通过Selenium实现省市区三级联动的自动化选择方法。方法一采用直接点击方式,通过XPath定位各级选项元素并依次点击选择;方法二使用Select类进行原生选择,支持按文本或value值选择,并配合WebDriverWait实现动态等待加载,确保在选项数据完全加载后再进行操作。两种方法都能有效完成三级联动选择,其中方法二通过显式等待机制更稳定可靠,适合处理网络延迟导致的动态加载场景。关键点包括:元素定位、Select类使用、显式等待策略等。

2026-01-30 23:11:51 33

原创 UI自动化-跳过登录进行项目的后续操作

本文介绍了两种基于Selenium的自动化登录方案:1)针对验证码登录等复杂场景,通过首次手动登录后保存完整的Cookie、LocalStorage和SessionStorage信息,后续直接注入实现免登录;2)直接使用Cookie登录方案,需注意Cookie过期问题,建议使用时刷新或重新获取最新Cookie。两种方案都包含完整的实现代码,涵盖浏览器配置、信息保存、注入及登录验证等关键步骤,并提供了错误处理和调试方法。第一种方案更全面可靠,适合复杂登录场景;第二种方案简单直接但需维护Cookie有效性。

2026-01-29 02:51:34 392

原创 UI自动化-日期插件的选择-可输入不可输入情况

本文介绍了两种处理时间插件的自动化测试方法:1)对于可输入插件,直接使用XPath定位元素并send_keys写入日期;2)对于不可输入插件,提供两种解决方案:通过JavaScript强制写入值,或先移除readonly属性再写入。两种方法都包含清除字段、输入日期、等待1秒后点击保存按钮的完整流程。文中给出了具体的代码实现,适用于不同场景下的时间插件自动化测试需求。

2026-01-29 02:45:12 352

原创 UI自动化-针对验证码登录的系统,通过首次手动登录存储cookie的方式后续访问免登录方法

本文介绍了一个自动化登录解决方案,包含两个Python脚本:1)保存登录信息脚本,使用Selenium打开浏览器并手动登录后,自动保存Cookie、LocalStorage和SessionStorage到本地JSON文件;2)免登录脚本,读取保存的登录信息并注入浏览器实现自动登录。脚本通过隐藏自动化标识避免被检测,包含完整的上下文保存和恢复逻辑,支持验证登录状态,并提供了错误处理和截图功能。该方案可有效实现网站的一次性登录和后续自动化免登录操作。

2026-01-28 17:39:06 323

原创 UI自动化-头像上传及图片指定选择(ActionChains动作链)

该代码片段展示了使用Selenium进行网页自动化操作的过程,主要包括:1) 通过XPath定位元素并点击进入个人中心和修改头像页面;2) 定位文件上传元素并发送本地图片路径;3) 使用ActionChains模拟鼠标拖拽操作来调整图片选择范围;4) 最后点击确认上传按钮完成头像修改。代码中包含了必要的延时等待和详细的XPath定位方法,特别强调了文件上传元素的识别特征(type="file")以及动作链执行的关键性。

2026-01-28 14:52:52 89

原创 生成的日志文件处理(历史文件重命名+指定清理文件)

本文介绍了日志文件配置与管理的方法。在ini文件中配置日志参数,包括日志路径、级别和格式。在run.py中实现日志管理功能:1) 定义日志目录、前缀和后缀;2) 执行测试后生成带时间戳的新日志文件;3) 自动清理机制保留最多10个日志文件,按创建时间删除最早的日志;4) 最后生成Allure测试报告。该方案实现了日志的自动化轮转和清理,确保日志文件有序管理。

2026-01-24 12:38:54 577

原创 页面动态元素无法快速复制定位解决

摘要:针对动态元素(如登录提示)快速消失导致定位困难的问题,分析原因为前端通过setTimeout或样式修改导致元素生命周期短暂。解决方案包括:1)浏览器调试时暂停JS执行进行元素定位;2)使用Selenium的显式等待(WebDriverWait)配合EC.presence_of_element_located或EC.visibility_of_element_located条件,在元素出现时立即捕获。示例代码展示了登录操作后等待5秒内出现的提示元素并获取文本内容的方法。

2026-01-24 11:03:35 146

原创 快速排序(基础实现 + 多线程加速)

本文介绍了快速排序算法的两种实现方式。基础版本采用分治思想,随机选择基准值(pivot)避免最坏情况,将数组分为小于、等于和大于基准的三部分处理重复值,递归排序子数组后合并结果。多线程优化版本通过线程池并行处理左右子数组,设置阈值控制(默认1000)在子数组较小时切换为单线程以避免线程开销,使用最多2个线程最大化并行效率。测试表明该算法能有效处理大规模数据(如10万条随机数),通过合理控制线程数和阈值平衡了并行收益与线程管理开销。

2026-01-22 16:04:12 139

原创 字典 value 是 list,怎么取出 list 的值(d={“A“:1,“B“:2,“C“:[4,5]})

【代码】字典 value 是 list,怎么取出 list 的值(d={“A“:1,“B“:2,“C“:[4,5]})

2026-01-22 15:43:08 189

原创 Windsurf代码依赖检查导入

【代码】Windsurf代码依赖检查导入。

2025-04-15 19:26:08 631

原创 MongoDB常见语句

/增 db.getCollection("Y").insertMany([{"age": 10,name: "ces5"},{"age":11,name:"ces6"}]);//批量新增//删,deleteOne效果一样 db.getCollection("Y").deleteMany({"age":10});//批量删除db.getCollection("Y").update({"age": 10},{set:{name:"测试2"}});//批量改。

2025-04-15 19:21:23 1412

原创 Windsurf安装、汉化等常见操作

Terminal Auto Execution:终端自动执行功能,默认显示Turbo,代表以高速模式自动执行终端命令,最大化利用资源加速终端命令运行,适合追求效率的自动化测试场景。- Autocomplete Speed:自动补全速度,默认设置为 Fast(快速)优先保障补全速度,快速响应代码输入并弹出建议,适合追求效率的场景。- Cascade Auto-Fix Lints:自动修复代码检查(Lint)发现的问题,默认状态为 On(启用)关闭(Off)后,仅提示问题,不执行自动修复。

2025-04-14 16:35:23 3324

原创 ClickHouse

例如,ClickHouse 的主键索引只能基于单个列,而不支持复合索引。不支持复杂的事务处理:虽然 ClickHouse 支持简单的事务(如 INSERT、ALTER 等操作),但不支持复杂的事务处理,如嵌套事务、保存点、事务回滚等功能。列式存储: ClickHouse将数据按列存储,而不是按行存储,这种存储结构在分析工作负载下通常效率更高,因为它可以只检索所需的列,而不是整个行。实时数据插入: 虽然ClickHouse主要用于分析工作负载,但它也支持实时数据插入,可以在数据分析的同时进行实时更新。

2025-04-14 15:29:04 971

原创 Python生成Excel文件流

【代码】Python生成Excel文件流。

2025-04-08 15:04:37 183

原创 git版本控制

【代码】git版本控制。

2025-04-08 15:03:54 523

原创 docker-ce部署

【代码】docker-ce部署。

2024-04-06 17:57:18 485 1

原创 windows下部署mongoDB

【代码】windows下部署mongoDB。

2024-04-06 17:52:04 871

原创 性能测试-jp@gc - Stepping Thread Group-获取到最大可使用并发用数

配置:jmeter-plugins-manager-1.3.jar插件放入lib/ext,重启jmeter。

2024-03-07 09:01:50 1431

原创 JMeter--9.录制脚本

1.新建线程组:测试计划->线程->线程组2. 新建录制器:测试计划->非测试原件->HTTP(S)测试脚本记录器(HTTP代理服务器)3. 配置代理的端口,一般默认为8888,如果开启了fiddler或者其他的也是使用8888端口的工具需要修改端口号,以防端口冲突4. 目标控制器,要选择一个线程组。这里下拉线程组就是新建的所有线程组,选择一个需要的即可,到时候录制的脚本就会放在该线程组下面5. 点击启动,此时会自动生成一个CA证书,切回出现一个录制弹框,通常情况不用处理。

2024-02-28 20:56:42 738

原创 性能测试-性能测试概念

并发定义: 默认多个人同时请求。性能测试并发的实现方式: 进程、线程、协程进程: 资源拥有着,一个程序,至少有一个进程和一个线程。Jmeter用的即为线程线程: 用资源来执行操作。loadruner默认是用线程,也可以用进程协程:比线程还要小的执行者。python+locust用的即为协程

2024-02-28 19:27:37 1118

原创 从0开始python学习-54.python中flask创建MD5和base64加密校验的接口

【代码】从0开始python学习-53.python中flask创建MD5和base64加密校验的接口。

2024-02-24 14:10:27 920

原创 从0开始python学习-53.python中flask创建简单接口

【代码】从0开始python学习-53.python中flask创建简单接口。

2024-02-24 14:10:09 967

原创 python中hasattr()、getattr()、setattr()

【代码】python中hasattr()、getattr()、setattr()

2024-02-23 14:46:35 652

原创 adb-monkey命令

p 参数:表示指定测试的程序(空格后面跟安装包名)-v 参数:表示查看monkey执行过程的日志(-v 越多越详细,最多三个)数字100:表示测试事件数为100。

2024-02-23 14:09:00 1706

原创 adb-连接模拟器和真机操作

设置->关于平板电脑->l连续点击版本号直到出现提示【开发者选项】->返回上一步能看到【开发者选项】adb connect 127.0.0.1:62001 > 查看是否已连接:adb devices。devices设备正常连接、offline连接出现异常,设备无响应、unknown没有连接设备。设置->关于本机->版本信息->连续点击版本号直到出现提示。回到设置页面搜索【开发者选项】->开启usb调试。点击进入开发者选项,开启usb调试。

2024-02-21 12:59:45 5812

原创 adb-常用命令

10. 查看指定app的错误日志:adb logcat '*:E' | grep 'com.cyanogenmod.filemanager' / adb logcat '*:E' | findstr 'com.cyanogenmod.filemanager'20. 查指定程序pid:adb shell "ps | grep $package" 示例:adb shell "ps | grep com.cyanogenmod.filemanager"8. 查看错误日志:adb logcat '*:E'

2024-02-21 12:55:44 947

原创 adb-环境安装

。3. 在path中加入配置【%ANDROID_HOME%\tools】【%ANDROID_HOME%\platform-tools】2. 配置环境变量--将解压后的文件中sdk路径配置到系统变量中,变量名为【ANDROID_HOME】配置不成功样式--不成功就去检查是否环境变量配置有问题。4. 验证是否成功-cmd中输入adb。百度网盘 请输入提取码。

2024-02-20 10:41:12 989

原创 从0开始python学习-53.python操作mysql、redis、mongo数据库

【代码】从0开始python学习-53.python操作mysql、redis、mongo数据库。

2024-02-20 10:38:37 615 1

原创 Linux-文件文件夹相关命令

压缩:zip -r ./压缩后的文件名.zip ./需要压缩的文件夹 -r表示递归解压:解压到当前路径:unzip 压缩包文件名.zip解压到指定路径:unzip 压缩包文件名.zip -d 目标路径。

2024-02-19 10:24:20 695

原创 redis

del --删除指定的key:del key 1成功0无该key,多个情况:del key1 key2 ...exists--检查key是否存在:exists key key存在1否则0expire--设置key生存时间:expire key 30 key生存时间为30s,不设置为为-1表永久expireat--unix时间戳生存时间:expireat key 时间戳格式,到点过期ttl--查看key剩余时间:ttl key 到时间key自动删除。

2024-02-19 10:23:52 1136

原创 Linux-系统资源管理的命令

目录查看CPU:more /proc/meminfo 查看内存数据:free -m / free -h查看系统版本:more /etc/issue查看操作系统的类型:uname -a查看主机名称:hostname查看磁盘空间:df -h查看某个目录空间占用情况:du -sh 目录的路径查询端口号是否被占用:netstat -anp |grep 端口号查看进程:ps -ef | grep 进程id / 服务查看实时进程:top》》退出:ctrl+c

2024-02-18 12:19:41 848

原创 Linux-ls命令

#代表当前所在目录.. #代表当前所在目录的父目录,即上一级目录。

2024-02-18 12:00:44 1223

原创 解决在pycharm中无法进入conda环境的问题

setting -> Terminal中将shell path修改为win的即可--注意需要重启。pycharm中使用的是Windows PowerShell。

2024-01-25 23:27:12 1444

原创 conda-建立多个python环境

在‪C:\Users\Administrator下新建文件【.condarc】2. 安装好了会自动配置环境变量,如果没有配置手动配置。8. 查看当前是否在conda环境中。5. 通过conda下载指定环境。4. 设置conda配置文件。3. 检查conda环境。6. 查看下载的环境。

2024-01-25 23:20:29 931

原创 从0开始python学习-52.pytest之基础路径配置

2. 封装路径读取方法-新建封装方法base_url.py。1. 在ini文件中写入路径数据。4. 用例中写入读取。

2024-01-25 23:17:17 835

原创 Fiddler常用功能

隐藏不需要的数据包:HIde connects 和304断点调试automatic Breakpoints弱网测试设置:performance。

2024-01-24 19:39:02 552

原创 postman断言

目录常见断言1. 断言状态码2. 断言响应体中是否包含该字符串3. 断言json中某个字段的值4. 断言响应body中正文是否等于response_body_string,需要完全相等5. 断言是否包含Content-Type响应头,也可以换成其他响应头断言6. 断言请求消耗的时间小于指定时间7. 断言响应状态码的名称在断言中使用自定义动态参数1. 在前置脚本中设置动态参数2. 在请求中使用这个动态参数,且该参数会作为响应返回才有断言的意义 3. 在tests中进行断言2. 断言响应体中是否包含该字符

2024-01-23 23:38:19 631

原创 postman参数提取+加密

json格式提取. 正则表达式提取. cookie提取-提取响应返回的cookie值. 请求头提取值--提取响应头所需要的值. MD5加密. base64位加密

2024-01-23 23:33:42 1688 1

原创 从0开始python学习-52.pytest之ddt数据封装

3. yaml用例中设置和使用数据。1. 判断是否为ddt数据。

2024-01-20 19:18:38 948

空空如也

空空如也

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

TA关注的人

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