- 博客(121)
- 收藏
- 关注
原创 Python+Playwright自动化测试-1-环境准备与搭建
1.安装所需的浏览器 chromium,firefox 和 webkit,安装时会自动下载浏览器(仅需这一步即可安装所需的浏览器,并且不需要安装驱动包了(解决了selenium启动浏览器,总是要找对应浏览器版本的驱动包,有时候浏览器自动更新升级了,还得再次下载对应驱动的的这一头疼的事)。一方面这是IT技术领域的一个趋势,从业人需要时刻关注业内的新技术,新方向,不断提升自己的能力,或者给公司,团队带来新的idea,这样才能不断在职业生涯中稳步向前。说到UI自动化,可能大家和我一样,主要是用Selenium。
2025-04-03 23:50:04
377
原创 从定义、原理、环境搭建、安装问题排查等深入了解Appium
Appium是开源的、跨平台的测试自动化测试框架;主要用于测试移动端应用;Appium支持模拟器和真机上的原生应用、混合应用、Web应用;Appium使用WebDriver的JSON wire协议来驱动Apple系统的库、Android系统的框架;因Appium集成了Selendroid框架,所以Appium支持比较老版本的Android;Appium支持支持的所有语言(JavaPythonJavaScriptPHPRubyC#ClojurePerl等)。
2025-04-03 08:25:25
742
原创 HackRF One 的详细介绍、安装指南及使用说明
hrf.set_gpio_out(0, 1) # 设置 GPIO0 为高电平hrf.set_gpio_out(0, 0) # 设置 GPIO0 为低电平。
2025-04-02 15:50:15
494
原创 自动化测试简述(第一节)
三, 比较成熟的框架。最近几年自动化测试好像挺火的,去各大招聘网站上一搜,什么自动化测试工程师,测试开发工程啊,都挺多的而且待遇也挺高!经过上面的讨论,我们认识到了自动化的重要性,以及哪些儿能做自动化,哪些儿不适合做自动化,可是当我们拿到一个被测试的对象,实施自动化的时候,应该如何着手呢?现在生活节奏这么快,网速也是越来越快,无线,4G 等等,如果你的网站或应用反应慢,大家就没有耐心等待,直接关掉或退出。自动化测试是根据页面元素来定位操作的,如果被测试的网站或应用正处的改版阶段,是不能实施自动化测试的。
2025-04-02 12:47:05
256
原创 数据处理专题(七)
melt 方法用于将宽格式数据转换为长格式数据,而 pivot 方法用于将长格式数据转换为宽格式数据。使用 SQL 语法查询 DataFrame。将长格式数据转换为宽格式数据。使用 not in 条件。使用 not in 方法。使用 isin 方法。使用 or 条件。使用 in 条件。使用多个条件。保留多个值。处理重复值。基本查询。使用变量。
2025-04-02 07:50:09
283
原创 数据处理专题(六)
通过今天的练习,你应该已经掌握了如何处理时间序列数据,包括日期时间类型、时间序列的切片和重采样,以及如何进行滚动窗口计算和可视化。使用 lambda 表达式。将字符串转换为日期时间。按部分索引选择数据。检查日期时间类型。对单列应用函数。对多列应用函数。按日期范围切片。计算滚动标准差。排序多级索引。按季度重采样。计算滚动平均。按月份切片。
2025-04-01 18:55:12
617
原创 接口自动化入门(五)
接口自动化测试需要从测试目标、范围、用例设计、代码编写、执行和结果分析等多个方面进行系统规划。在大型项目中,接口测试的分工协同安排需要明确各团队的职责,引入专业工具提升协作效率,并通过持续优化测试流程和加强团队沟通,确保接口测试的高效性和高质量。在项目初期,测试团队需要与开发团队和产品经理密切合作,明确接口测试的目标和范围。接口自动化测试的目标通常包括提高测试效率、减少测试时间、保证系统的稳定性和一致性。HTTP协议是接口测试的基础,理解其请求-响应模型、状态码和安全性机制是接口自动化测试的关键。
2025-04-01 08:24:47
456
原创 模拟和修改网络请求
Playwright 提供强大的 API,可以模拟和修改 HTTP/HTTPS 网络流量。无论是 XHR 还是 fetch 请求,都可以被轻松跟踪、修改和模拟。此外,Playwright 还支持使用 HTTP Archive (HAR) 文件来模拟页面发出的多个网络请求。
2025-03-31 18:55:29
300
原创 数据处理专题(五)
通过今天的练习,你应该已经掌握了如何使用 Pandas 进行数据合并,包括使用 concat 方法和 merge 方法。通过今天的综合项目,你应该已经巩固了前 面的学习内容,包括数据读取、清洗、聚合和可视化等步骤。删除含有缺失值的行。指定多个键合并。绘制销售额的折线图和柱状图。实践:完成一个综合项目。检查缺失值。检查重复行。删除重复行。巩固前面的学习内容。内连接。左连接。外连接。
2025-03-31 07:49:57
418
原创 装饰器讲解
装饰器是Python中一个非常实用的特性,它可以在不修改原函数的情况下,动态地为函数添加额外的功能。通过本文的介绍,相信你对装饰器有了更深入的理解。装饰器是Python中一个非常强大的特性,它允许我们在不修改原函数的情况下,为函数动态添加额外的功能。今天,我们就来深入探讨Python中的装饰器,通过丰富的代码示例和应用场景,帮助你更好地理解和使用装饰器。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。装饰器的作用是在不修改原函数的情况下,为函数添加额外的功能。在函数执行前验证用户权限。
2025-03-30 14:29:21
436
原创 axios基础入门教程
一、axios 简介axios 是一个基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js 环境,支持以下特性:发送 HTTP 请求(GET/POST/PUT/DELETE 等)拦截请求和响应自动转换 JSON 数据取消请求并发请求处理二、安装1. 使用 npm/yarn2. 浏览器直接引入三、基本用法1. 发送 GET 请求2. 发送 POST 请求3. 使用 async/await四、请求配置1. 全局默认配置。
2025-03-30 11:11:31
717
原创 数据处理专题(四)
目标使用 Matplotlib 进行基本的数据可视化。学习内容绘制折线图绘制散点图绘制柱状图代码示例1. 导入必要的库2. 创建示例数据集3. 绘制折线图绘制单条折线图绘制多条折线图4. 绘制散点图绘制单个散点图绘制带颜色和大小变化的散点图5. 绘制柱状图绘制单个柱状图绘制堆叠柱状图绘制并排柱状图实践绘制一个数据集的折线图和柱状图。。
2025-03-29 08:48:37
729
原创 playwright元素定位方法
Web可访问性对于确保所有用户(包括有残障的用户)能够无障碍地与您的应用程序进行交互至关重要。实现可访问性的关键工具之一是ARIA(Accessible Rich Internet Applications)属性。ARIA属性使您的应用程序对依赖辅助技术(如屏幕阅读器)的用户更友好。除了可访问性,ARIA属性在使Web元素更容易在测试自动化中识别和交互方面也起着重要作用。为什么ARIA属性对可访问性有好处?•让内容对所有人可访问。
2025-03-28 07:59:05
1202
原创 Tomcat高并发处理性能
解决办法就是设置参数。首先JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
2025-03-27 15:32:01
913
原创 PyBluez2 的详细介绍、安装指南、使用方法及配置说明
PyBluez2 是 Python 生态中不可或缺的蓝牙开发工具,无论是构建智能家居系统、物联网网关,还是进行蓝牙协议研究,都能提供强大的支持。建议从基础的设备发现和数据传输开始实践,逐步探索 BLE 服务和复杂网络功能。对于企业级应用,可结合 Flask/Django 开发蓝牙 Web 服务。
2025-03-26 22:40:53
958
原创 Tomcat生产服务器性能优化
你使用过tomcat的话,简单的说就是“内存溢出”. 通常情况下,这种问题出现在实际的生产环境中.产生这种问题的原因是tomcat使用较少的内存给进程,通过配置TOmcat的配置文件(Windows 下的catalina.bat或Linux下的catalina.sh)可以解决这种问题.这种解决方法是通过增加JVM的栈内存实现的.也就是说,JVM通常不去调用垃圾回收器,所以服务器可以更多关注处理web请求,并要求尽快完成。在这篇文章里分以下的七个步骤,按照这些步骤走,Tomcat服务器的性能就能改善哦。
2025-03-26 14:01:43
1217
原创 关于 MQTT客户端 的详细介绍、安装指南及使用说明
MQTT客户端作为物联网通信的核心组件,其轻量级特性和灵活架构使其成为设备互联的首选协议。无论是构建智能家居系统还是工业物联网平台,掌握MQTT客户端的安装、配置和使用都是开发者的必备技能。建议从基础的消息收发开始实践,逐步探索QoS机制和安全加密等高级功能。
2025-03-25 15:39:42
918
原创 接口自动化入门(三)
如果接口需要特定的请求头(如 Content-Type: application/json),可以通过 HTTP 信息头管理器(HTTP Header Manager)进行设置。使用 JSON 提取器:在需要提取数据的 HTTP 请求下,添加后置处理器(Post-Processor)中的 JSON 提取器(JSON Extractor)。,将提取的 Token 设置为全局变量 Token。在线程组下添加 HTTP 请求(Sampler),配置接口的 URL、请求方法(GET/POST)、参数和请求头。
2025-03-25 07:49:21
434
原创 Selenium断言文件是否下载成功
项目中,存在点击后下载的业务流程,而selenium本身没有很好的方法去断言文件是否下载成功。此时我们可以通过WatchService去监听目录文件,来确定文件是否下载成功。通过上面的方法即可得到下载后的文件名,然后通过下载的文件和用例中的预期做断言即可。确认文件是否下载完成。
2025-03-24 08:09:29
355
原创 tomcat性能优化方案
虽然Tomcat也可以作web服务器,但其处理静态html的速度比不上Apache,且其作为web服务器的功能远不如Apache,因此把Apache和Tomcat集成起来,将html和Jsp的功能部分进行明确分工,让Tomcat只处理Jsp部分,其他的由Apache,IIS等web服务器去处理,由此大大提高Tomcat的运行效率。根据实际经验,通过Apache和Tomcat集群的方式提高系统性能的效果十分明显,这种方式可以最大化的利用硬件资源,通过多个Tomcat的处理来分担单Tomcat时的压力。
2025-03-24 07:59:29
1013
原创 关于 URH(Universal Radio Hacker) 的详细介绍、安装指南、配置方法及使用说明
URH 是无线电协议分析领域的强大工具,其灵活性和开源特性使其成为研究人员和开发者的理想选择。无论是逆向工程未知协议,还是优化现有通信系统,URH 都能提供从信号层到应用层的全方位支持。建议结合 GNU Radio 进行信号处理实验,并参与社区项目贡献解码规则。
2025-03-23 20:51:28
1130
原创 异步压测机制的浅谈
压测消费者时,业务层面,关注tps、吞吐量(关注消费者的最佳消费能力--每秒能处理多少消息),另外需要关注生产的消息过期(假如有过期时间的话)之前能否全部被处理完成,是否会遗漏(可以考虑通过数据库、日志等查看相关记录是否缺失),操作系统参层,关注cpu,内存,io,网络资源等。通常,“异步任务”都会涉及到两个对象,一个对象的输出,作为另一个对象的输入,比如,常见的消息组件kafka,就是这样,一个生产者,专门负责生产消息,一个消费者,专门负责消费消息。和“同步”测试一样,也是需要看实际的业务性能需求。
2025-03-23 09:52:13
373
原创 .net项目性能监控与优化
常用的计数器,LR里添加的默认计数器比下面的还多,系统资源监控总体原则是根据问题现象重点关注分析相关的指标,一般情况下监控常用的即可。Object计数器如果该值持续超过95%,表明CPU可能是瓶颈,需特别关注需初步判断高CPU的原因,需区分user和sys指待处理队列中地线程数,通常该值的接收范围是CPU个数*2;此外跟踪计算机的服务器工作队列显示当前长度的Server Work Queues\queue Length可用物理内存,windows系统的该值建议至少100M。Pages/Sec。
2025-03-22 13:42:51
1225
原创 接口自动化入门(二)
Swagger适合动态开发和测试,Word适合详细描述,Excel适合参数管理和测试用例设计,PDF适合外部共享。在接口自动化测试中,理解HTTP请求中的域名和IP地址的概念非常重要。以下是关于域名和IP地址的详细解析,以及它们在接口测试中的作用。在接口自动化测试中,接口文档是开发和测试人员理解接口功能、参数和交互方式的重要依据。通过理解域名和IP地址的概念及其在接口请求中的作用,你可以更好地设计和维护接口自动化测试脚本,确保接口的稳定性和可靠性。IP地址是互联网协议地址,用于在网络中标识设备的唯一地址。
2025-03-21 18:49:58
574
原创 接口自动化入门(一)
包含响应的元数据信息,如Content-Type(指示响应体的数据类型)、Content-Length(指示响应体的长度)。包含请求的元数据信息,如User-Agent(指示客户端类型)、Content-Type(指示请求体的数据类型)等。请求头是客户端向服务器发送的附加信息,用于描述请求的性质、来源、数据格式等。包含服务器返回的数据,可以是HTML、JSON、XML等格式的数据,根据Content-Type进行解析。客户端发送HTTP请求时,会在请求头中包含请求方法、资源路径、HTTP协议版本等信息。
2025-03-21 08:33:40
644
原创 HCITool 的详细介绍、安装指南及使用说明
HCITool 是蓝牙开发者进行底层调试的必备工具,无论是分析硬件兼容性问题,还是开发定制化蓝牙应用,都能提供强大的支持。建议结合 Wireshark 进行数据包联合分析,深入理解蓝牙协议栈的工作原理。
2025-03-20 18:51:03
306
原创 数据处理专题(三)
通过今天的练习,你应该已经掌握了如何使用 Pandas 进行基本的数据清洗,包括处理缺失值、重命名列和删除重复行。使用 loc 和 iloc 筛选数据。使用特定值填充缺失值。使用特定值填充缺失值。3. DataFrame 的创建。读取 CSV 文件。写入 CSV 文件。删除含有缺失值的行。删除含有缺失值的行。指定列删除重复行。指定列删除重复行。按条件筛选数据。
2025-03-20 08:21:18
602
原创 数据处理专题(二)
字典的方法(keys, values, items, get, update)。使用 linspace 创建数组。使用 arange 创建数组。使用 zeros 创建数组。使用 ones 创建数组。values 方法。items 方法。数组的索引和切片。计算数组的标准差。sort 方法。keys 方法。从列表创建数组。查看数组的形状。
2025-03-19 21:06:51
354
原创 数据处理专题(一)
9. 读取文件并统计特定单词出现的次数。编写一个简单的程序,计算两个数的和。10. 读取文件并替换特定内容。7. 读取文件并统计字符数。8. 读取文件并统计单词数。6. 读取文件并统计行数。3. 函数定义和调用。1. 打开和关闭文件。5. 追加内容到文件。2. 读取文本文件。3. 逐行读取文件。4. 写入文本文件。while 循环。
2025-03-19 08:00:11
399
原创 Python基础入门掌握(十五)
通过合理使用try-except语句,并结合最佳实践,可以有效捕获和处理各种异常,提升程序的健壮性和用户体验。在实际开发中,应根据具体的应用场景灵活运用异常处理机制,确保程序的稳定性和可维护性。适用场景:当不同子类需要实现不同的行为时,可以重写父类的方法。适用场景:在数据库访问中,多态可以方便地切换不同的数据库实现。适用场景:在图形绘制系统中,多态可以统一处理不同类型的图形。适用场景:在日志系统中,多态可以灵活切换不同的日志记录方式。适用场景:当需要处理特定的错误情况时,可以使用自定义异常。
2025-03-18 18:43:41
1169
原创 Python基础入门掌握(十三)
通过类,我们可以定义自己的数据类型,封装数据和功能,实现代码的复用和模块化。通过以上10个代码示例,我们深入探讨了Python中的类机制,从基本定义到高级特性,希望这些内容能帮助你更好地理解和应用面向对象编程。继承和多态实现代码复用:通过继承可以实现代码复用,多态允许不同子类以不同方式实现父类方法。适用场景:类方法用于与类相关的操作,静态方法用于与类无关的工具方法。适用场景:继承用于实现代码复用,子类可以继承父类的属性和方法。类是对象的模板:通过类可以定义自己的数据类型,封装数据和行为。
2025-03-17 20:33:53
469
原创 Python基础入门掌握(十一)
在Python中,函数本质上是一个对象,可以被赋值给变量,也可以作为参数传递给其他函数,甚至可以作为函数的返回值。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。在Python中,函数调用时会将参数传递给函数,并执行函数体中的代码,最后返回结果。将函数作为参数传递给其他函数,这种方式在高阶函数(如map()、filter()等)中非常常见。将函数作为参数传递给其他函数,这种方式可以实现函数的动态调用。装饰器本质上是一个返回函数的函数,用于扩展其他函数的功能。
2025-03-16 10:56:19
444
原创 Python基础入门掌握(十)
按年龄排序后的结果:[{'name': 'Charlie', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}]按年龄排序后的结果:[('Charlie', 20), ('Alice', 25), ('Bob', 30)]合并后的结果:[('Alice', 25), ('Bob', 30), ('Charlie', 35)]作为函数的参数:在高阶函数(如map()、filter()、sorted()等)中传递匿名函数。
2025-03-16 10:55:53
326
原创 Python基础入门掌握(九)
被嵌套的函数通常被称为内部函数,而包含它的函数被称为外部函数。内部函数可以访问外部函数的变量,但外部函数无法访问内部函数的变量。文档字符串(docstring)是特殊的注释,通常用三重双引号"""..."""包围,位于函数定义的第一行。多行注释:虽然Python没有专门的多行注释语法,但可以通过连续的单行注释或包含在三重引号中的字符串(通常用于文档字符串)实现。print("连接后的字符串:", concatenate_strings("苹果", "香蕉", "橙子"))
2025-03-15 11:30:02
327
原创 Python基础入门掌握(八)
函数是Python中的一种可重用代码块,它允许我们将一组相关的操作封装在一起,以便于调用和重复使用。使用场景: 当参数较多且容易混淆时,使用关键字参数可以使调用更加清晰,如API请求中的参数传递。使用场景: 当某些参数具有常见值时,可以设置默认参数以简化调用,如配置文件中的默认设置。使用场景: 创建简单的单行函数,尤其适用于临时性操作,如列表排序或过滤。使用场景: 实现高阶函数,增强代码的灵活性和功能性,如回调函数或装饰器。示例 7: 检查集合是否为另一个集合的子集。
2025-03-15 11:29:07
255
原创 Python基础入门掌握(七)
示例 11: 字符串切片实现单词拆分。示例 9: 字符串切片结合条件过滤。示例 4: 使用步长进行间隔提取。示例 6: 修改列表中的部分元素。示例 8: 删除列表中的部分元素。示例 10: 列表切片生成新列表。示例 3: 遍历字符串中的字符。示例 6: 列表推导式简化循环。示例 5: 遍历字典的键值对。示例 1: 基本字符串切片。
2025-03-15 11:28:12
307
原创 Python基础入门掌握(六)
range()函数是Python内置的一个非常有用的函数,它可以根据指定的起始值、结束值和步长生成一个不可变的数字序列。示例 11: 使用zip函数创建元组。示例 9: 使用in关键字检查元素。示例 6: 元组作为函数返回值。示例 10: 元组转换为列表。示例 4: 创建单元素元组。示例 7: 元组作为字典键。示例 3: 元组解包。示例 5: 元组拼接。示例 8: 遍历元组。
2025-03-15 11:27:51
233
原创 Python基础入门掌握(五)
列表的一些常见操作包括:。示例 4: 删除列表中的特定元素。示例 8: 查找列表中元素的位置。示例 1: 基本列表定义及打印。示例 6: 删除列表中的元素。示例 5: 添加元素到列表。示例 10: 列表推导式。示例 4: 列表切片。示例 7: 列表排序。示例 8: 列表遍历。示例 9: 列表嵌套。示例 6: 列表排序。
2025-03-15 11:27:24
206
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人