
自动化测试
文章平均质量分 72
测试开发Kevin
05年开始从事测试工作,擅长性能测试、安全渗透测试、UI自动化测试,接口测试,白盒测试,测开后端,熟悉Java和Python。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详解如何通过playwright的 page.eval_on_selector_all() 方法来爬取网页中link进而实现爬虫
摘要:本文介绍了如何使用Playwright的page.eval_on_selector_all()方法批量获取页面链接信息。该方法通过CSS/XPath选择器匹配所有元素,并执行JavaScript函数处理数据。文中以百度首页为例,演示了如何获取所有<a>标签的href属性,并对结果进行过滤(去除空值和非HTTP链接)。重点解析了箭头函数(elements) => {...}的作用机制和链式调用的数据处理流程,包括.map()提取href和.filter()进行筛选。该方法适用于网页爬虫原创 2025-06-05 09:26:09 · 1235 阅读 · 0 评论 -
playwright的高级应用技巧之通过page.route修改请求过滤资源
Playwright的page.route() API可拦截网络请求提升测试效率。核心功能包括通过URL匹配规则拦截请求,支持修改请求/响应、屏蔽资源(如图片/CSS)和模拟API数据。处理函数必须调用continue_()、fulfill()或abort()方法,适用于加速测试、调试网络问题等场景。Python实现需注意异步函数和continue_()特殊语法,路由仅对当前页面有效。该功能为自动化测试和爬虫提供了高度可控的网络请求管理能力。原创 2025-06-05 08:52:27 · 1386 阅读 · 0 评论 -
详解Jenkins Pipeline 中git 命令的使用方法
在 Jenkins Pipeline 中,git 命令是用于从版本控制系统(如 Git)拉取代码的核心步骤。其用法灵活,支持多种配置参数,但需要遵循 Jenkins 流水线语法规范。原创 2025-06-04 11:08:07 · 1603 阅读 · 0 评论 -
赶快收藏!DeepSeek总结的Git 干货!
Git 的核心特性快照机制:Git 存储文件变化的快照,而非差异(类似每次提交保存整个项目的状态)。本地化操作:大多数操作无需网络,本地即可完成。数据完整性:所有文件通过 SHA-1 哈希值唯一标识,确保数据不可篡改。分支与合并:轻量级分支设计,支持高效并行开发。原创 2025-06-04 11:07:18 · 759 阅读 · 0 评论 -
解决pytest-html html报告中的问题:No log output captured.
html测试报告是成功生成了,但是提示No log output captured. 怎么解决呢?加上参数--capture=sys即可原创 2025-06-03 09:07:18 · 241 阅读 · 0 评论 -
Pyhton中的命名空间包(Namespace Package)您了解吗?
在 Python 中,命名空间包(Namespace Package) 是一种特殊的包结构,它允许将模块分散在多个独立的目录中,但这些目录在逻辑上属于同一个包命名空间。命名空间包的核心特点是:没有 文件,且模块可以分布在不同的物理位置。这是 Python 3.3+ 引入的特性,旨在解决传统包结构的某些限制。无需 传统包必须包含 文件来标识包,而命名空间包无需此文件。只要目录在 Python 的搜索路径中,且目录名是共享的命名空间,即可组成一个逻辑包。模块分片存储 可以将一个包的代码分散在多个独立目原创 2025-06-03 09:06:12 · 877 阅读 · 0 评论 -
用了这么久Python,包(Package) 和 普通目录(Directory)的区别您知道吗?
在 Python 中,将代码放置在 包(Package) 和 普通目录(Directory)下的主要区别在于模块的组织方式、导入机制以及代码的可维护性。以下是核心区别和关键点。原创 2025-05-30 11:13:52 · 891 阅读 · 0 评论 -
分享pytest.ini中有中文报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte ...的三个终极解决方案
在使用pytest框架时,如果大家使用的工程通过utf-8进行编码,那么在pytest.ini中加入中文以后,在运行的过程中会遇到下面这个问题UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b in position 164: illegal multibyte sequence原创 2025-05-30 11:11:02 · 263 阅读 · 0 评论 -
pytest-html常用的参数有哪些?
pytest-html插件参数详解:该插件不仅支持基本参数--html生成报告和--self-contained-html创建独立报告,还提供多种自定义选项:1)样式修改:通过--css添加自定义样式,--logo嵌入公司标识;2)信息增强:使用--metadata/--environment添加测试环境数据,--title设置报告标题;3)高级定制:支持--template自定义模板,--no-header简化报告,--asset-url引用外部资源。这些参数可灵活组合,满足不同场景的测试报告需求,从基础原创 2025-05-29 08:44:31 · 430 阅读 · 0 评论 -
巧用Allure 的 allure.dynamic.title 实现在测试运行时动态设置测试用例的标题。
在实际工作中,我们经常需要动态的设置测试用例标题,在Allure中,我们可以通过方法 allure.dynamic.title 实现这个需求!应用过程非常简单,在这里做一下分享:原创 2025-05-28 09:21:35 · 425 阅读 · 0 评论 -
在Allure中,只有使用好epic、feature、story和title ,用例才能实现模块、场景,功能点的分级展示
对于刚刚使用Allure的同学来说,非常重要的一点就是在Allure中进行模块、场景,功能点的分级展示,Allure是通过epic、feature、story、title来实现相关功能的, 今天我们就来把这些内容讲清楚。本文默认大家已经构建好了Allure环境,并能够在pytest中使用Allure。原创 2025-05-28 09:20:49 · 544 阅读 · 0 评论 -
已解决!pytest无法执行if __name__ == ‘__main__‘中的代码
在pycharm中使用pytest +allure时遇到了这样一个问题:想单独运行下面的pytest代码,运行后自动生成allure报告,但是发现if __name__ == '__main__': 中的代码不会被执行原创 2025-05-27 10:53:49 · 279 阅读 · 0 评论 -
详解测试报告生成工具——Allure的使用方法
Allure 是一款轻量级、灵活的测试报告生成工具,能够以可视化形式展示测试结果,支持多语言(如 Java、Python、JavaScript 等)和测试框架(如 pytest、JUnit、TestNG 等)。它提供丰富的交互式报告功能,包括用例分类、步骤详情、环境信息、附件(截图、日志)等,帮助团队高效分析测试结果。原创 2025-05-09 09:14:22 · 2097 阅读 · 0 评论 -
从投入产出、效率、上手难易度等角度综合对比 pytest 和 unittest 框架
对于选择python作为测试脚本开发的同学来说,pytest和python unittest是必需了解的两个框架。那么他们有什么区别?我们该怎么选?让我一起来了解一下吧!原创 2025-05-09 09:10:54 · 1334 阅读 · 0 评论 -
告诉大家通过设置pytest.ini 中参数来提升测试效率的方法
pytest.ini 是 pytest 的配置文件,用于定义 pytest 的默认行为和自定义规则。除了我们熟知的 addopts、testpaths 和 markers,还有多个常用参数可以配置。在实际工作中,使用好这些参数可以大大提升我们的测试效率。原创 2025-05-08 09:20:22 · 964 阅读 · 0 评论 -
详解pytest中 conftest.py 的作用
conftest.py 是 pytest 框架中用于共享测试配置的核心文件,支持层级化管理和自动发现机制。以下是其核心作用及用法详解:原创 2025-05-08 09:19:19 · 991 阅读 · 0 评论 -
超级实用!汇总pytest中那些常用的参数
刚开始使用pytest的同学,可能感觉最复杂的点就是其提供的各种参数,丰富的命令行参数在带来了灵活控制测试行为的同时也增加了对于新手的上手难度。在这里,我总结了一下pytest常用参数的分类,并提供详细的使用方法!原创 2025-05-07 09:35:55 · 1078 阅读 · 0 评论 -
以pytest_addoption 为例,讲解pytest框架中钩子函数的应用
钩子函数(Hook Function)是软件框架中预定义的回调接口,允许开发者在程序执行的特定阶段插入自定义逻辑,以扩展或修改框架的默认行为。在 pytest 中,钩子函数覆盖了测试生命周期的各个环节(如初始化、用例收集、执行、报告生成等),用户通过实现这些钩子函数,可以深度定制测试流程。原创 2025-05-07 09:26:37 · 1082 阅读 · 0 评论 -
收藏一下Deepseek统计的Pytest中 常用的Hook函数
Pytest 提供了丰富的钩子函数(Hook),允许在测试生命周期不同阶段进行自定义扩展。以下是常用钩子函数分类及详细使用方法原创 2025-05-06 10:45:42 · 862 阅读 · 0 评论 -
用最精简的例子带您快速了解Pytest框架中最核心的功能
Pytest 是 Python 最流行的测试框架之一,以简洁的语法和强大的扩展功能著称。它支持单元测试、集成测试和复杂的功能测试,尤其适合中小型项目到大型企业级项目的自动化测试。原创 2025-05-06 10:43:54 · 1283 阅读 · 0 评论 -
想要提升Java操控字符串的性能吗?建议大家使用StringBuilder 的 append方法连接字符串来取代+
在方法内部,特别是在循环中,使用 +操作符来连接字符串可能会导致性能问题。这是因为每次使用 +连接字符串时,都会创建一个新的字符串对象来保存结果,这会导致大量的内存分配和可能的垃圾回收,特别是在循环中多次执行时会产生性能问题!原创 2025-01-11 13:34:05 · 173 阅读 · 0 评论 -
一文告诉您Python 中r,b,u,f前缀的用法
在Python中,r,b,u,f等前缀和格式化字符串是用于处理不同类型文本和数据的工具。r前缀表示原始字符串,b前缀表示字节字符串,u前缀表示Unicode字符串,f前缀表示格式化字符串。了解这些前缀的含义和用法有助于更好地处理不同类型的字符串和数据。原创 2025-01-11 13:33:20 · 427 阅读 · 0 评论 -
不懂Java快速转义json数据的小伙伴,千万别在简历中写“熟练编码”四个字!
使用Java做测试开发的同学们在实际工作中大概率会遇到通过代码发送json数据的场景,在这里是有编码技巧的,会使用这个技巧会大幅提升我们的工作效率,也可以帮助面试官判定同学们是否能够熟练使用IDE进行编码!(特别试用考核那些简历中写明熟练使用java编码的小伙伴)原创 2025-01-06 09:37:00 · 180 阅读 · 0 评论 -
用了这么久Python,三个单引号特别适合对于复杂多行字符串处理这件事儿您知道吗?
在python中我们经常用的就是单引号和双引号,而关于三引号的用法,相信大家会在多行注释中应用过,今天就带大家了解一下另外一个知识点——三引号!三个引号在需要对复杂多行字符串处理的场景中是非常实用的!原创 2025-01-06 09:35:43 · 580 阅读 · 0 评论 -
一文带大家了解Python、CPython、Jython还有其他各种thon
当谈到Python时,一般指的是CPython。Python实际上是一门语言规范(编程语言),即我们使用的python语法。CPython是用C语言实现的这种语言的解释器(是一种可以执行Python代码的软件程序)。CPython将Python源码编译成CPython字节码,由虚拟机解释执行。它是标准Python实现,也是其他Python编译器的参考实现。原创 2024-12-11 14:05:56 · 1397 阅读 · 0 评论 -
Pull requests 和Merge Request其实是一个意思
在Git中,PR(Pull Request)是一种协作开发的常用方式。它允许开发者将自己的代码变更(通常是一个分支)提交到项目的仓库中,然后请求负责代码审查的人员将这些变更合并到主分支中。通过PR,可以方便地进行代码审查、讨论和验证变更的正确性和安全性。原创 2024-12-11 13:17:51 · 713 阅读 · 0 评论 -
playwright+DdddOcr实现带校验码的web登录(附源码)
最近使用playwright+DdddOcr实现了带校验码的web方式登录,在这里把代码分享给大家!登录页面UI元素的识别细节可能会有一些诧异,大家可以结合自己的实际项目进行修改!原创 2024-12-04 09:53:27 · 661 阅读 · 0 评论 -
解决python 使用pip 安装模块时遇到的错误SSL: CERTIFICATE_VERIFY_FAILED
Collecting requests Could not fetch URL https://pypi.tuna.tsinghua.edu.cn/simple/requests/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661) - skipping Could not find a version原创 2024-12-03 09:30:12 · 1421 阅读 · 1 评论 -
今天我们来聊聊Maven中两个高级的概念—— 插件和目标
插件(plugin)可以具有一个或多个目标(goal),其中每个目标表示该插件的能力。goal 是存在于 maven plugin 中,因此,大多数的 maven 功能实际上是存在于插件中,一个 maven 插件提供了一组可以被运行的 goal。大家可可以理解为goal就是插件的参数,同一个插件通过不同的参数输入来实现不同的功能输出。原创 2024-12-02 09:31:14 · 1301 阅读 · 0 评论 -
不理解Maven中生命周期和阶段的含义,是无法理解mvn clean install这条命令的!
Maven主要提供了以下的几个核心功能:repo(仓库的管理):开发项目过程中,我们需要引入其他的Jar包,在maven中可以指定获取Jar包的仓库。dependency(依赖管理):开发项目过程中,我们需要引入第三方的jar包(不同的版本,以及多个Jar之间的依赖),在maven中都可以解决。lifecycle(生命周期管理):在maven的构建中被划分为多个阶段(生命周期),构建的过程也是按照生命周期进行执行。我们今天重点聊生命周期管理,相信即使用了很久Maven的同学都会从这篇文章中受原创 2024-12-02 09:30:19 · 648 阅读 · 0 评论 -
SonarQube规则库中的Quick Fix到底是什么东东?是我们必须快速修复的问题集合吗?
SonarQube规则库中的Quick Fix到底是什么东东?是我们必须快速修复的问题集合吗?本文将带大家了解什么是Quick Fix。原创 2024-11-11 10:01:47 · 422 阅读 · 0 评论 -
会用SonarQube的同学们,SonarQube中的核心概念你们知道吗?
在实际工作中很多公司都使用SonarQube作为代码分析工具,使用起来也非常简单,就是在构建代码的同时运行SonarQube+SonarScanner来进行代码分析,发现严重问题则上报,没有问题就通过代码检测!好多同学只停留在会用SonarQube的阶段,本文就带大家了解一下SonarQube中的核心概念,相信一定会帮助那些想要深入了解SonarQube的人!原创 2024-11-11 10:01:04 · 1374 阅读 · 0 评论 -
下载Python历史版本 的小伙伴看这里!内附通过url下载不同python版本的小技巧
最近参与的项目需要使用Python2.7.x,在下载Python2.7.x的过程中花费了一些时间,在这里我快速总结下载Python2.7.x的方法以及其他python各个版本的方法,希望能够帮助有需求的小伙伴们节省时间!原创 2024-11-07 09:24:38 · 791 阅读 · 0 评论 -
一文带大家搞定在SonarQube中安装汉化插件和spotbugs插件的方法(下载插件失败的同学看这里!)
在SonarQube中想要安装插件,可以在Administration>Marketplace中搜索需要的插件,然后点击下图中的Install,默认自动安装即可,非常容易!但遗憾的是,大多数同学都会像我一样,因为网络原因,而导致自动安装失败!怎么破?原创 2024-11-07 09:21:12 · 3117 阅读 · 0 评论 -
一文带您了解SonarScanner的原理和使用方法(包括maven构建和命令行执行)
SonarScanner执行源代码分析。这个独立的程序在CI/CD主机上运行,并将分析结果发送到SonarQube服务器,由其计算分析结果,计算质量门并生成报告。为了执行分析,SonarScanner使用安装时从SonarQube服务器下载的语言分析器。SonarScanner和SonarQube二者的关系,通过下面的图就很容易了解了!SonarScanner负责扫描代码,然后把结果发送到SonarQube。SonarQube负责显示SonarScanner的扫描结果并提供扫描rules给Son原创 2024-11-06 08:46:06 · 2369 阅读 · 0 评论 -
仅需3步,花费10分钟,轻松搞定SonarQube 10.7安装
最近安装了SonarQube,在这里分享一下在安装过程中遇到的坑,以便于大家避坑!!!概要总结1.下载SonarQube community windows 版(10.7)并解压2.把SonarQube解压后目录中自带的jre添加到环境变量中3. 通过\bin\windows-x86-64\SonarService.bat 启动SonarQube原创 2024-11-06 08:45:02 · 1692 阅读 · 2 评论 -
用了这么久Java,您知道什么是装箱和拆箱吗?
在Java中,装箱(Boxing)和拆箱(Unboxing)是自动类型转换过程,它们涉及到基本数据类型(如int、double、char等)和它们对应的包装类(如Integer、Double、Character等)之间的转换。这种机制是从Java 5(也称为Java 1.5)开始引入的,主要目的是为了支持泛型编程,因为Java的泛型在编译时会被类型擦除,而基本数据类型不能被泛型化,只能使用它们的包装类。原创 2024-10-10 09:16:32 · 471 阅读 · 0 评论 -
自动化测试同学的福音来了!通过DdddOcr可以非常方便的识别登陆验证码!
DdddOcr,其由Sml2h3与 kerlomz 共同合作完成,通过大批量生成随机数据后进行深度网络训练而得,我们可以使用她提供的api,对登录校验码进行识别,能够解决在自动化测试过程中登录需要获取验证码的场景。备注:对于简单的数字和字母组合的校验码识别率还是非常好的,大家可以查看文章中的测试结果。原创 2024-09-05 09:02:07 · 783 阅读 · 0 评论 -
提交MR这个词儿您知道是什么意思吗?
作为测试的同学,是不是经常会听研发同学说提交MR呢?那么究竟什么是提交MR呢?在这篇文章中会告诉大家!在Git中,提交MR(Merge Request,合并请求)是在进行协作开发的一种常见方式,允许开发者向代码仓库的主分支提交自己的代码修改,并请求审核和合并。原创 2024-09-02 10:28:25 · 2601 阅读 · 0 评论 -
Python小技巧,用单引号和双引号叠加的方法来处理字符串会为您大幅提升工作效率
Python中转义符为 \ ,后面跟上单引号或者双引号,可以使得结果直接输出单引号或者双引号。这是Python编译器的约定,比如字符串里面有个\“这样的,如果没有\,则会认为”是一个引号,如果报错,如果加了\“,则会认为”是一个字符,原样输出。通过转义符的确能够解决问题,但是当字符串非常复杂呢,我们怎么处理,难道一个一个加\,或者在写一个方法然后实现在"号前加\号吗?原创 2024-08-08 09:21:18 · 856 阅读 · 0 评论