自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注于技术分享的博主

学无止境,分享各种技术,Java,性能,c++,接口,数据库,工具,经验分享

  • 博客(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基础入门掌握(十四)

类属性的概念与应用。

2025-03-18 08:00:54 466

原创 Python基础入门掌握(十三)

通过类,我们可以定义自己的数据类型,封装数据和功能,实现代码的复用和模块化。通过以上10个代码示例,我们深入探讨了Python中的类机制,从基本定义到高级特性,希望这些内容能帮助你更好地理解和应用面向对象编程。继承和多态实现代码复用:通过继承可以实现代码复用,多态允许不同子类以不同方式实现父类方法。适用场景:类方法用于与类相关的操作,静态方法用于与类无关的工具方法。适用场景:继承用于实现代码复用,子类可以继承父类的属性和方法。类是对象的模板:通过类可以定义自己的数据类型,封装数据和行为。

2025-03-17 20:33:53 469

原创 Python基础入门掌握(十二)

模块化与引用关系。

2025-03-17 08:28:25 848

原创 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

性能测试调优思路分享+mysql

性能测试调优思路分享+mysql

2025-03-07

空空如也

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

TA关注的人

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