自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到 小哇 的博客,会一直加油!

代码铸就梦想,博客见证成长~

  • 博客(74)
  • 收藏
  • 关注

原创 接口自动化工具类模板 + 必备 requirements 依赖清单

本文介绍了Python项目开发中常用的三个工具类实现:日志工具、请求封装和YAML读写。日志工具类实现了按日志级别(INFO/ERROR)分离存储功能,自动创建日志目录并按日期生成日志文件;请求封装类对requests库进行了二次封装,添加了请求和响应信息的日志记录功能;YAML工具类提供了数据读写和清空操作。最后给出了项目依赖库requirements.txt文件内容,包含pytest、requests等常用测试库。这些工具类可有效提升Python项目的开发效率和可维护性。

2026-05-17 17:10:39 59

原创 pytest集成Allure报告教程

本文详细讲解 Windows 系统下 Allure 报告的下载配置、环境变量问题解决、PyCharm 终端配置、常用运行命令、报告查看方式,区分临时启动服务与生成静态 HTML 报告两种打开方式。详解--clean-alluredir清空参数、数据追加问题,并教大家在 pytest.ini 中配置默认参数,简化每次运行命令,实现自动化测试报告纯净生成,快速定位用例报错信息。

2026-04-21 11:05:03 278 1

原创 Python logging日志模块详解

本文详细讲解Python标准库中logging模块的核心用法,包括日志级别、全局logging使用、自定义logger配置、日志输出到文件及日志格式设置。通过完整可运行的练习代码,拆解每一步操作逻辑,帮助快速掌握日志记录技巧,满足自动化测试及日常开发中的日志需求

2026-04-20 19:54:14 472 1

原创 pytest 接口自动化必备技能:JSON Schema 数据格式校验详解

本文详细讲解接口自动化测试中的 JSON Schema 校验技术,介绍其作用、安装方法、核心关键字及使用场景。通过实际接口案例演示如何定义校验规则,包含数据类型、数值范围、字符串、数组、对象、必填字段、依赖关系等校验方式。结合 pytest 实现自动化断言,确保接口返回数据结构稳定、字段类型正确,提升自动化测试的可靠性。

2026-04-20 16:32:41 630 1

原创 YAML 全攻略:从基础语法到文件读写,一篇吃透

本文系统讲解 pytest 接口自动化中必备的 YAML 知识点,包含 YAML 定义、核心特点、语法规则、数据类型写法,详细教学 PyYAML 安装与文件读写实操,同时针对 Python 新手零基础讲解 with open 文件操作语法,搭配可直接运行的实战代码,帮助快速掌握用 YAML 做测试配置、数据驱动的核心技能。

2026-04-14 10:55:24 756 1

原创 Python自动化测试:pytest新手快速入门指南

本文介绍了pytest测试框架的安装方法和核心使用技巧。文章详细介绍了命令行参数使用、前后置操作方法(setup/teardown和fixture)、断言技巧以及参数化测试(@pytest.mark.parametrize)。特别强调了fixture的强大功能,包括yield实现前后置操作、scope参数控制作用范围,以及通过conftest.py实现全局fixture共享。

2026-04-13 17:06:12 776 1

原创 Python接口测试:requests库实战指南

本文全面介绍了Python requests库在接口自动化测试中的核心应用。文章从基础用法入手,详细解析了Response对象的关键属性和请求方法,重点讲解了GET、POST等HTTP请求方式。针对接口测试的核心参数(params、data、json、headers、cookies)进行了深度剖析,通过对比说明其适用场景。最后通过三个典型实战案例(博客详情查询、用户登录、Cookie鉴权),完整演示了requests库在接口自动化测试中的实际应用流程,包括参数传递、鉴权处理和结果断言等关键环节,为接口测试提

2026-04-02 21:19:27 778 2

原创 接口测试核心概念与用例设计问答

本文以问答形式讲解接口测试,介绍接口分类、组成及与功能测试的区别,说明其重要性,讲解 GET/POST、状态码等基础,给出 Python 技术栈与用例设计方法

2026-03-25 19:37:07 431 2

原创 jmeter插件下载+创建梯度线程组+命令生成性能测试报告

摘要:本文介绍了JMeter插件的安装与使用流程,包括下载plugins-manager.jar并放置到指定路径,重启后通过蝴蝶图标管理插件。重点讲解了梯度线程组的配置方法,包括线程数、预热时间、梯度加压规则(如每30秒增加10线程)和停机策略。同时说明了如何添加响应时间和吞吐量监听器,以及通过命令行生成包含HTML报告的详细性能测试报告,帮助评估系统性能并进行优化。

2026-03-18 17:55:47 743 12

原创 JMeter配置和使用入门指南

本文介绍了JMeter性能测试工具的基本使用方法。主要内容包括:JMeter的启动方式(环境变量配置)、中文界面设置、字体调整等基础配置;性能测试流程详解,包括线程组创建(配置并发数、循环次数等参数)、HTTP请求设置(URL、方法、参数)、结果查看(配置结果树);进阶功能如HTTP信息头管理器、JSON提取器(使用操作符提取响应数据)、JSON断言(验证接口返回结果)等。文章通过具体示例演示了如何利用JMeter进行接口性能测试,包括请求配置、结果分析和断言验证等关键步骤,适合性能测试初学者快速掌握JMe

2026-03-15 20:54:05 815 15

原创 抽奖系统Selenium自动化测试流程解析

本文介绍了抽奖系统UI自动化测试的实现方案。测试基于SpringBoot+Selenium4.0框架,使用WebDriverManager自动管理浏览器驱动版本,配置了6秒隐式等待和60秒显式等待策略。核心工具类实现了随机测试数据生成(手机号、QQ邮箱)和自动化截图功能。测试逻辑覆盖登录/注册模块的异常场景验证、管理员模块的iframe切换和多场景测试(人员管理、奖品管理、活动管理),并设计了全流程自动化测试入口。关键技术难点包括iframe嵌套页面定位、弹窗处理、动态按钮状态切换等,通过显式等待和状态判断

2026-03-08 09:24:12 6509 22

原创 抽奖系统测试报告

本文档为抽奖系统测试报告,该系统基于SpringBoot+MySQL前后端分离架构,包含用户登录、活动/奖品/人员管理和抽奖等核心功能。测试覆盖功能、兼容性、性能及安全性等方面,采用Selenium、Postman等工具。结果显示系统运行稳定,在Chrome/Firefox/Edge等浏览器兼容性良好,页面平均响应时间合理,发现10个缺陷(20%高危)均已修复。建议增加活动模板、结果导出功能,优化数据库查询和移动端适配。测试表明系统满足设计要求,具备良好的用户体验和安全性能。

2026-03-07 19:56:28 6064 7

原创 UI自动化操作select下拉选择框

摘要:Selenium操作select下拉框需使用Select类,不能直接使用click()或sendKeys()。方法包括:1)定位select元素;2)包装为Select对象;3)通过selectByVisibleText()、selectByValue()或selectByIndex()选择选项。示例展示了三种选择方式,推荐使用可见文本方式可读性更好。

2026-03-07 11:16:40 93 2

原创 自动化测试避坑:iframe 嵌套页面定位元素失败问题全解析

摘要:本文针对Web自动化测试中iframe嵌套页面导致的元素定位失败问题,分析了URL不变但内容变化的典型特征,指出Selenium默认在顶层文档查找导致失败的核心原因。提出通过frameToBeAvailableAndSwitchToIt方法切换iframe上下文的解决方案,并给出包含异常处理和日志记录的完整Java代码示例。文章还总结了切换前等待加载、操作后切回顶层等关键要点,以及常见错误的解决方法,强调显式等待和封装复用iframe切换方法的重要性,为处理iframe嵌套页面提供了系统化的解决方案。

2026-03-06 20:26:35 791 5

原创 性能测试基础概念

本文介绍了性能测试的核心概念与分类。性能测试旨在发现系统性能问题或获取性能指标,主要关注并发数、吞吐量和响应时间等关键指标。吞吐量分为TPS(每秒事务数)和QPS(每秒查询率),直接反映系统负载能力。性能测试包括基准测试、并发测试、负载测试、压力测试和稳定性测试等类型。其中,负载测试确定系统处理能力峰值,压力测试则评估系统极限状态,而稳定性测试验证系统长期运行的可靠性。这些测试方法共同构成了完整的性能评估体系。

2026-03-04 18:17:45 108 4

原创 Selenium自动化测试函数全解析(二)

本文围绕 Selenium 自动化测试中页面元素定位失败的问题展开分析,归纳了五类诱因,并结合百度搜索实操案例加以佐证。针对代码执行与页面加载不同步的核心问题,文章重点介绍了强制等待、隐式等待、显示等待三种解决方案,对比各自优缺点与适用场景,强调避免隐式等待和显示等待混合使用以防等待时间不可控。此外,文章还补充了 Selenium 的进阶操作技巧,涵盖浏览器导航、弹窗处理、文件上传以及无头模式、页面加载策略等浏览器参数配置,为提升自动化测试的稳定性与效率提供了全面的实操指引。

2026-01-06 20:00:58 957 1

原创 Selenium自动化测试函数全解析(一)

本文介绍了Selenium WebDriver常用操作方法,包括元素查找(findElement/findElements)、选择器使用(CSS/XPath)、元素交互(点击/输入/清空)、信息获取(文本/属性/标题/URL)以及页面句柄管理。重点讲解了多标签页场景下的句柄切换方法,窗口大小设置和屏幕截图功能,并比较了close()和quit()的区别。通过百度首页操作实例,演示了如何获取页面信息、处理多标签页跳转问题,为Web自动化测试提供了实用技术参考。

2026-01-02 18:23:12 1026

原创 自动化测试基本概念解析

摘要:自动化测试主要用于回归测试,通过脚本执行历史功能测试,减少手工测试工作量,但不能完全取代人工测试。自动化测试分为UI和接口测试两类:UI测试包括客户端和Web界面测试,确保界面操作流畅;接口测试验证接口功能性能。使用Selenium工具需要配置浏览器驱动,通过添加相关依赖可简化驱动管理。自动化测试需要持续维护,能发现代码变更导致的错误,但不能绝对保证系统可靠性。

2025-12-30 15:44:06 895

原创 全面解析软件测试用例设计:从基础到进阶的完整指南

摘要:本文系统阐述了软件测试用例设计方法与最佳实践。针对现代软件复杂度高、漏测风险大的问题,提出测试用例6要素构成和“6+2”设计框架(功能、界面、性能、兼容性、易用性、安全测试+弱网/安装测试)。详细介绍了5种设计方法(等价类、边界值、决策表等),并给出银行转账和电商秒杀两个典型案例。数据显示,采用结构化测试方法可提升40%缺陷发现率,减少25%测试时间。建议建立测试用例检查清单,持续优化测试策略。

2025-12-09 19:11:48 741

原创 软件测试bug篇+因bug与开发产生争执该如何做

Bug是程序与既定规格不符或未达用户合理预期的功能问题。描述Bug要涵盖版本(如Web的浏览器版本)、环境、复现步骤、预期与实际结果。其级别通常分崩溃、严重、一般、次要等。当与开发因Bug产生争执,先自查描述是否清晰、操作是否无误,再从用户角度沟通,有理有据定级,还可给出建议。若沟通无果,可召开由测试、开发、产品代表参加的Bug评审会,决定处理方式并分析预防对策。

2025-12-08 20:30:27 669 1

原创 软件测试全攻略:从概念到模型详解

本文介绍了软件测试的基本概念、开发模型和测试模型。软件测试旨在验证产品是否符合用户需求,测试人员需要具备综合能力、自动化技术等素质。开发模型部分阐述了瀑布模型、螺旋模型、增量/迭代模型和敏捷开发的特点及适用场景,其中敏捷开发强调快速响应变化。测试模型重点介绍了V模型和W模型,分析了各自的优缺点。全文系统梳理了软件测试相关的核心概念和方法论,为测试工作提供了理论指导。

2025-12-07 16:13:00 1157

原创 MyBatis的TypeHandler :优雅地实现数据加密与解密

本文介绍了使用MyBatis TypeHandler实现数据库敏感数据自动加密解密的方案。通过定义Encrypt标记类和实现EncryptTypeHandler处理器,在数据存取时自动完成AES加密解密操作。该方法通过注解配置TypeHandler与Java类型的映射关系,无需修改业务代码即可实现透明加解密,具有解耦、通用性强、维护性好等优势。使用示例展示了如何在Mapper接口中应用该方案,有效解决了敏感数据存储的安全问题,同时保持代码简洁优雅。

2025-11-21 20:28:57 1375 2

原创 AOP面向切面编程

本文介绍了Spring AOP的基本概念与实现方法。AOP(面向切面编程)是一种在不修改源代码的情况下增强方法功能的编程思想,常用于拦截器、统一异常处理等场景。文章详细讲解了Spring AOP的实现步骤:首先添加相关依赖,然后通过@Aspect注解定义切面类,使用@Around等通知类型实现具体增强逻辑。重点解释了切点表达式、连接点、通知等核心概念,并比较了@Before、@After等不同通知类型的执行顺序。最后介绍了@PointCut简化重复表达式和@Order控制多个切面执行顺序的方法。通

2025-10-21 11:35:01 1037 2

原创 统一功能处理

本文介绍了Spring框架中的三个核心功能:拦截器、统一数据返回格式和统一异常处理。拦截器通过实现HandlerInterceptor接口,可在请求处理前后执行自定义逻辑,常用于登录校验;统一数据返回通过ResponseBodyAdvice接口实现,规范了响应格式;统一异常处理结合@ControllerAdvice和@ExceptionHandler,能集中处理各类异常。这些功能提高了代码复用性,增强了系统健壮性,使前后端交互更加规范,是构建高质量Spring应用的重要技术手段。

2025-10-14 21:31:53 1003 8

原创 MyBatis动态SQL标签详解

MyBatis动态SQL核心标签解析:介绍了MyBatis中常用的动态SQL标签,包括<if>用于条件判断、<trim>处理前后缀、<set>简化更新语句、<where>自动处理WHERE子句、<foreach>遍历集合以及<include>复用SQL片段。通过示例演示了如何避免SQL语法错误(如多余逗号)和实现条件查询、批量删除等操作,展示了MyBatis动态SQL构建的灵活性和强大功能。

2025-09-22 10:06:17 538 1

原创 MyBatis中#{}与${}传参对比

本文对比了MyBatis中#{}和${}两种传参方式的区别:#{}使用预编译SQL,通过占位符?防止SQL注入,能自动处理参数类型;${}直接拼接SQL,存在注入风险。文章通过Integer/String参数、排序和LIKE查询等场景进行演示,说明#{}更安全高效,但在排序场景需使用${}(需配合枚举规避风险)。最后给出了LIKE查询的安全解决方案:使用concat()函数结合#{}传参。

2025-09-17 22:44:02 1058 2

原创 MyBatis XML操作

本文介绍了使用MyBatis XML方式实现数据持久层开发的基本流程。主要包括:1)配置MySQL连接参数和MyBatis驼峰命名转换;2)创建Mapper接口并定义CRUD方法;3)在XML文件中实现SQL映射,包括select、insert、update、delete等操作;4)字段映射的三种方式:驼峰命名、起别名和结果映射;5)参数传递和主键回显的实现。通过MyBatisX插件可方便地在接口和XML文件间跳转,提高开发效率。文中还提供了完整的测试示例,展示了各操作的实现方式和执行效果。

2025-09-16 19:10:59 1052

原创 MyBatis 注解操作

MyBatis是一个简化JDBC开发的持久层框架,它通过XML或注解方式配置SQL语句,实现数据库操作。介绍了MyBatis的基本使用方法:1)添加MyBatis和MySQL驱动依赖;2)配置数据库连接参数;3)创建与数据库表匹配的实体类;4)通过@Mapper注解定义Mapper接口,使用@Select、@Insert等注解编写SQL;5)演示了参数传递、主键返回和增删改查操作;6)介绍了日志配置和单元测试方法。MyBatis自动生成Mapper实现类,简化了传统JDBC操作,提高了开发效率。

2025-09-16 15:24:32 1186 1

原创 Spring Boot日志

摘要:本文介绍了日志在系统监控、数据采集和审计中的用途,展示了Java中通过LoggerFactory和@Slf4j注解两种日志打印方式。详细说明了日志级别(FATAL到TRACE)及其适用场景,并演示了如何通过配置文件(.properties/.yml)调整日志级别和实现日志持久化。文章还讲解了日志文件的命名规则、存储路径配置优先级,以及通过logback实现日志分割的策略,包括按文件大小(max-file-size)和日期格式(file-name-pattern)两种分割方式。

2025-09-15 11:13:41 688 2

原创 SpringBoot配置文件:properties与yml全解析

本文介绍了SpringBoot的三种配置文件格式,重点对比了.properties和.yml的使用差异。.properties采用键值对格式(key=value),而.yml使用层级结构(key: value),通过缩进表示层级关系。文章详细说明了两种格式的配置语法、值获取方式(@Value注解)以及yml特有的对象、集合和Map配置方法。同时指出.properties优先级更高,但yml可读性更好且支持更丰富的数据类型,但格式要求更严格。

2025-08-23 00:25:16 649 2

原创 Spring两个核心IoC&DI(二)

本文介绍了Spring框架中依赖注入(DI)的三种方式:属性注入、构造方法注入和setter注入。通过代码示例详细说明了每种注入方式的具体实现方法及其优缺点。其中,属性注入简洁方便但仅适用于IoC容器;构造方法注入支持final属性但多对象注入较麻烦;setter注入灵活但存在被修改风险。文章还探讨了当存在多个同类型Bean时@Autowired注解的冲突问题,提出了使用@Primary、@Qualifier和@Resource三种解决方案,并比较了@Autowired与@Resource的区别。

2025-08-21 18:58:59 1185

原创 Spring两个核心IoC&DI(一)

Spring IoC与DI核心概念解析 IoC(控制反转)将对象的创建权交给Spring容器管理,通过五大类注解(@Controller、@Service等)和方法注解@Bean实现对象存储。DI(依赖注入)则通过@Autowired从容器获取对象。BeanName默认遵循小驼峰规则,可通过注解属性自定义。启动类默认扫描同级包路径,使用@ComponentScan可扩展扫描范围。@Bean注解特别适用于第三方库对象注入和同类型多实例场景,支持多别名配置。三种获取Bean方式(类名、beanName、混合)确

2025-08-21 16:30:12 927

原创 css选择器的常见用法

CSS选择器包括标签选择器(如p{color:blue})、类选择器(.green{color:green})、id选择器(#p1{font-size:10px})和通配符选择器(*{color:red})。复合选择器则可以组合使用这些基本选择器,如div a选择div内的所有a标签,而div>a则只选择直接子元素a标签。选择器通过特定语法精确控制HTML元素的样式表现。

2025-08-09 13:57:10 290 2

原创 查找总价格为目标值的两个商品

如图,因为8+66>61,而8~66中间的都比8大,因此和66相加只会更加大于61,所以指向66的指针要左移。如果这道题采用双重循环来找到和为目标值的两个数,时间复杂度高,效率低。题上说明数组按照升序排序,因此我们可以利用这个性质用双指针解决。然后8+52<61,那就把指向8的指针右移。重复以上步骤就能快速找到和为目标值的两个数。

2025-03-27 23:41:02 516 3

原创 有效三角形的个数

如果arr[left]+arr[right] > c,那么left和right中间这些>=left指向的数的元素和righ指向的数相加一定也是>c的,因此这些数和arr[right]、c一定能构成三角形。直到left和right相遇,我们就把所有c作为做大的数的所有情况判断完了,再把c左移,然后重复上面的情况。当c>a,c>b时,我们只需要判断一个条件a+b>c是否满足就可以了,满足就能构成一个三角形。三边a、b、c要满足a+b>c,a+c>b,b+c>a这三个条件才能构成三角形。

2025-03-27 20:51:38 423

原创 Thread类的方法使用

👑目录Thread的构造方法Thread的常见属性start()join()sleep()getName()getId()getState()isDaemon()isAlive()

2024-11-17 18:00:26 1610 3

原创 进程与线程+多线程优势

开始记录时间后创建了线程t1,然后开启t1,接着创建线程t2并开启该线程,然后就打印了执行时间,但此时两个线程还在执行任务,没有结束。线程用的就是进程启动时从操作系统中分配的资源,(线程也可以叫轻量级的进程),当创建一个进程时,进程中就会包含一个线程,叫主线程。run方法只是Java对象的一个普通方法,定义了线程要执行的任务,但是调用run方法不会申请系统进程PCB,不能启动线程。我们可以理解为进程就是一个公司,线程就是员工,一个公司可以有多个员工,一个进程可以创建多个线程。

2024-11-06 20:22:45 1338 3

原创 数组划分/数组分块(双指针算法)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。

2024-11-05 09:09:35 490 2

原创 笔试强训2)最小花费爬楼梯(动态规划-线性dp)

给定一个整数数组 𝑐𝑜𝑠𝑡 cost ,其中 𝑐𝑜𝑠𝑡[𝑖] cost[i] 是从楼梯第𝑖 i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费

2024-10-25 23:54:01 577 2

原创 笔试强训1)

描述:1、给定两个整数数组分别为nums1, nums2,找到它们的公共元素并按返回。2、点击消除字符

2024-10-24 03:30:00 438 2

抽奖系统项目的UI自动化测试代码

抽奖系统项目的UI自动化测试代码,包含登录注册模块+管理模块(活动创建、列表、抽奖;奖品创建、列表;人员列表、管理员注册普通用户)的完整测试流程。

2026-03-07

抽奖系统项目测试用例设计

根据抽奖系统项目进行的测试用例设计,与之相关文章:抽奖系统测试报告

2026-03-07

空空如也

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

TA关注的人

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