- 博客(57)
- 收藏
- 关注
原创 使用 PyCharm 创建 Python 项目时,默认生成的 .venv 文件夹是属于什么类型的虚拟环境
PyCharm 在创建 Python 项目时,默认生成的.venv文件夹属于 venv。
2025-03-26 18:19:07
939
原创 JSONPath 的介绍
类似于 XPath(用于 XML),JSONPath 是一种。,用于通过路径表达式定位 JSON 结构中的节点。筛选符合条件的数据(如价格大于 100 的商品)。动态解析 API 返回的 JSON 响应。从复杂嵌套的 JSON 中提取特定字段。:对超大 JSON 数据谨慎使用递归。:不同库的过滤语法可能略有不同(如。:JSON 属性名是大小写敏感的。:轻量级库,语法略有差异。:数组的第一个元素索引为。
2025-03-21 09:53:57
552
原创 接口自动化脚本优化的多个关键维度及具体方法总结
CI/CD集成与团队通知提升协作效率。:并行执行与依赖复用缩短测试时间。:分层设计与日志报告提升可维护性。:精准覆盖业务场景和异常分支。:异常处理和容错机制减少误报。
2025-03-14 17:56:14
756
原创 Python中的`if __name__ == ‘__main__‘`这个语句的作用
让代码既能作为工具库被其他模块复用,又能独立运行完成特定任务。是一个常见的代码块,用于控制脚本的执行逻辑。块内的代码才会被执行;如果该文件被导入为模块,则不会执行。脚本的主入口:将主要逻辑放在此处,使模块可复用且可独立运行。是 Python 的一个内置变量,表示当前模块的名称。模块的测试代码:在开发时添加测试逻辑,避免被导入时触发。,当它被导入时,顶层的测试代码会被自动执行。的值是该模块的名称(即文件名去掉。:在模块中直接测试函数逻辑。:只有直接运行该文件时,在 Python 中,:主程序,导入并使用。
2025-03-11 17:53:02
371
原创 python:“魔法“方法
在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做魔法方法,如:__init__() 方法__init__() 方法,在创建一个对象时默认被调用,不需要手动调用__init__(self) 中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么中出了 self作为第一个形参外还需要2个形参,例如 __init__(self,x,y)__init__(self) 中的self参数,不需要开发者传递,python。
2025-03-11 17:43:13
142
原创 UI自动化:常用的元素定位工具
特殊情况:碰到元素在鼠标悬停后才会出现,移走鼠标后页面收缩,没办法去定位元素的信息。可以使用以下方法来进行定位:鼠标悬停到标签上后,在Sources中按Ctrl + \ 组合键,进入debug模式,动效JS会停止继续执行,然后正常定位元素信息即可。:右键元素 → Copy → Copy selector / Copy XPath(自动生成路径,但可能不够优化)。启动浏览器并录制操作,自动生成代码和定位表达式。输入 XPath 表达式,页面自动高亮匹配元素。点击元素,自动生成表达式并验证结果。
2025-03-11 11:53:39
641
原创 UI自动化:Selenium常规的页面元素定位方法
中定位页面元素是自动化测试的核心操作之一。:使用相对 XPath 或 CSS 选择器,减少对页面结构的依赖。掌握这些方法后,可以覆盖 99% 的页面元素定位场景!:ID 唯一且加载快,但部分动态页面可能缺失或重复。灵活性高,支持层级、属性、文本等多种定位方式。:适用于表单元素,但 Name 可能不唯一。性能略低于 CSS 选择器,但适合复杂场景。:Class 可能重复,需确保唯一性。:改用 CSS 选择器或优化表达式。:使用其他固定属性或层级关系定位。:等待元素加载完成后再操作。中,或等待时间不足。
2025-03-10 18:03:49
1082
原创 几种常见的虚拟环境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的区别和特点总结
在 PyCharm 中创建虚拟环境是一个非常直接的过程,可以帮助你管理项目依赖,确保不同项目之间的依赖不会冲突。
2025-03-10 15:21:15
825
原创 selenium 组成和原理
它支持多种浏览器和编程语言,能够模拟用户操作(如点击、输入、页面跳转等)。支持多语言(Java、Python、C#、JavaScript 等),通过语言绑定库调用 WebDriver。支持跨平台、跨浏览器测试(如同时运行 Chrome、Firefox、Safari)。每个浏览器(如 Chrome、Firefox、Edge)需要对应的驱动(如。:兼容 Chrome、Firefox、Safari、Edge 等主流浏览器。:直接与浏览器交互,执行自动化操作(如元素定位、表单提交、页面导航等)。
2025-03-07 16:54:51
691
原创 unittest框架 核心知识的系统复习及与pytest的对比
适用场景:适合需要与Python标准库无缝集成的项目,或团队习惯xUnit风格。优势无需额外安装,兼容性强。清晰的类与方法结构。劣势:灵活性较低,扩展依赖第三方库。推荐搭配:结合ddt(参数化)、coverage(覆盖率)、(报告)提升效率。
2025-03-05 16:42:26
1032
原创 pytest框架 核心知识的系统复习
核心优势:简洁语法 + 插件生态 + 高度可定制化。最佳实践使用参数化减少重复代码。结合 CI/CD(如 Jenkins、GitHub Actions)自动化测试。通过 Allure 或 HTML 报告直观分析结果。
2025-03-05 16:25:03
1435
原创 用例设计方法在自动化测试中的应用
assert response.code == 400 # 无效等价类断言异常。assert response.code == 200 # 有效等价类断言成功。assert order.state == "paid" # 断言状态未改变。assert response.code == 403 # 断言权限错误。:使用工具(如Selenium、Cypress、Postman)模拟用户操作链。:使用工具自动生成边界值(如0, 1, max-1, max, max+1)。
2025-03-04 18:21:12
962
原创 轻松理解正交实验法
茶底:红茶、绿茶、乌龙茶甜度:全糖、半糖、无糖加料:珍珠、椰果、布丁如果全组合测试,一共要喝 3×3×3=27杯奶茶!但正交实验法的核心是:用最少的测试组合,覆盖最多的可能性。比如选9杯奶茶,就能覆盖所有因素的典型组合!列出所有影响因素(变量):茶底、甜度、加料。设计正交表:一张表格,每一行代表一种组合,每一列代表一个因素。测试这9种组合,就能发现大部分问题(比如乌龙茶+无糖+椰果是否难喝),而不需要喝27杯!覆盖性强:每个因素的每个值都和其他因素的值搭配过。例如:红茶、绿茶、乌龙茶都分别搭配过全糖、半糖
2025-03-04 18:13:55
239
原创 软件测试用例设计方法总结
测试浏览器兼容性时,组合因素为“浏览器(Chrome、Firefox)、操作系统(Win、Mac)、分辨率(1080p、4K)”,通过正交表选择代表性组合。数值范围:如允许输入0-100,测试-1、0、1、99、100、101。:条件间存在依赖关系或约束(如“用户已登录”是“发表评论”的前提)。:业务逻辑复杂、需验证多模块协作的系统(如金融交易、电商平台)。:将输入条件(因)与输出结果(果)转化为逻辑图,再转换为决策表。列出所有条件(如登录条件:用户名有效、密码有效、验证码正确)。
2025-03-04 18:08:51
903
原创 接口安全测试核心要点
目标服务器启用了不安全的传输方法,如PUT、TRACE、DELETE、MOVE等,这些方法表示可能在服务器上使用了WebDAV,由于dav方法允许客户端操纵服务器上的文件,如上传、修改、删除相关文件等危险操作,如果没有合理配置dav,有可能允许未授权的用户对其进行利用,修改服务器上的文件。关闭不安全的传输方法,推荐只使用POST、GET方法!如果服务器不需要支持WebDAV,请务必禁用它。或者为允许WebDAV的目录配置严格的访问权限,如认证方法,认证需要的用户名,密码。
2025-03-03 17:48:53
616
原创 Jmeter分布式压测
在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,通过命令行模式来执行。1、通过jmeter-server.log文件,可以查看执行日志。
2025-03-03 17:11:53
612
原创 探索性测试精简指南
注:本指南建议结合传统脚本测试使用,可作为质量风险探测的"尖兵"策略,重点关注常规测试难以覆盖的场景边界。四、实践方法论(漫游模型)
2025-03-03 16:16:29
295
原创 MeterSphere 使用脚本处理数据
执行sql查询语句,可以通过变量的形式获取到查询后的值,取到的值是list类型,通过index方式使用(从1使用,0是字段名不是值)-- SamplerResult:当前请求请求结果 SamplerResult 的指针。//打印“Hello World!-- prev:获取之前Sampler返回的信息。//设置变量 VAR2 的值为 value。//获取变量 VAR1 的值。//设置请求结果成功或失败。//移除变量 VAR3。//获取响应Code码。//设置请求返回消息。2、前置/后置SQL。
2024-12-05 17:00:18
536
原创 MeterSphere接口测试提取数组及引用
如提取数组中第1个和第2个值,则输入$.data.groups[1,2].name,并勾选匹配多条。$.data.groups[*].name,并勾选匹配多条以提取全部值。$.data.groups[n].name提取特定值。输入${name_ALL}以引用数组中的全部值。输入${name_1}引用数组中的第一个值。7、ForEach控制器循环引用数组中的值。3、提取数组中的某几个特定值;4、按下标引用数组中某个值;1、提取数组中某个特定值;2、提取数组中全部值;5、引用数组全部值;
2024-12-03 17:23:40
490
原创 MeterSphere 了解
是一款专注于软件测试的工具类软件,隶属于。它是一个一站式开源持续测试平台,涵盖了测试跟踪、接口测试、UI测试和性能测试等功能,旨在帮助开发和测试团队进行可扩展的自动化测试,加速高质量的软件交付。
2024-12-02 11:39:17
403
原创 python:字符串字母处理和字符串判断常用的方法
#1、字母处理.upper() # 全部大写.lower() # 全部小写.swapcase() # 大小写互换.capitalize() # 将整个字符串的首字母大写,其余小写.title() # 每个单词的首字母大写。
2024-10-22 16:52:08
258
原创 python: 根据字典的value值排序字典
考虑下输入1 2 3 4 输出为['1', '2', '3', '4']的情况,即所有元素都只出现一次的情况。编写一个程序,找出一个包含整数(也是字符串,但数字组成)和字符串的列表中最多重复的元素。如果两个元素的出现次数相同,则将两个元素都添加到列表中(按顺序添加)并返回该列表。# 遍历列表,将列表中元素和对应出现次数分别存放在字典中。在函数内,计算列表中最多重复的元素,并将其返回到一个新列表中。# 遍历次数列表,取出最大值对应的key存放在列表中。# 如果元素出现的次数均为1,直接返回列表。
2024-10-22 16:26:52
515
原创 敏捷测试和难点
注重阶段性的测试,通常在开发完成后进行,导致问题积累和修复成本增加。敏捷开发方法强调个体和互动、工作的软件、客户合作和响应变化,旨在提高软件开发效率。 敏捷测试的核心理念是强调持续测试和快速反馈,以尽早发现和修复问题,从而提高软件质量12。,强调从客户的角度出发,持续迭代地测试新开发的功能,并尽早开始测试,以确保在快速变化的环境中交付高质量的软件产品。这个矩阵分为四个象限,左右分别为支持编程和评价产品,上下分别为面向业务和面向技术。”,并将其应用于实际的测试工作中。,标志着敏捷开发的正式诞生。
2024-10-12 17:30:38
297
原创 敏捷开发 与 Scrum
符合敏捷价值观和原则的开发方法包括:极限编程(XP),Scrum,精益软件开发(Lean Software Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Crystal Clear)等等。示例:在软件开发项目中,团队致力于以最小可行产品(MVP)的形式交付初始软件版本,以便客户尽早享受一些功能,而不必等待完整的产品。示例:团队成员在项目中具有多样的技能,相互信任,鼓励开放的交流,以实现项目目标。
2024-10-12 17:18:54
1226
原创 python: while True循环
while True 是一个无限循环,直到遇到 break语句来停止,常常用于需要持续运行或监听的程序。在某些条件下停止这个循环,使用。
2024-07-03 14:35:47
279
原创 python:find()方法查找子串的位置
字符串对象的方法,用于寻找指定子串在字符串中首次出现的索引位置,如果在指定范围,返回开始的索引值,否则返回-1。子串在字符串中出现一次。子串在字符串中出现多次。
2024-07-03 14:26:30
418
原创 数字签名(Digital Signature)
4.判断文件摘要1 == 文件摘要2?#相同则说明是发送方发送的文件-文件没有被篡改&由发送方发送。2.文件摘要+私钥->数字签名 #不同的文件、私钥,数字签名不同。验证文件接收方收到的文件是否为文件发送方的文件。一串字符(一个经过私钥加密的文件摘要)1.文件+哈希函数->生成文件摘要。2.公钥解密数字签名->文件摘要1。3.文件+哈希算法->文件摘要2。1.数字签名+公钥+文件。
2024-07-01 18:22:25
138
原创 编程中文本(Text)和数据类型(Data Types)
编程语言用来组织和存储数据的方式,数据类型决定了数据如何被计算机存储和理解。常见的数据类型包括整数、浮点数、字符、布尔值、数组等。每种数据类型都有其特定的操作和函数可以使用,例如,整数类型可以进行加、减、乘、除等运算。通常指人类可读的字符序列,包括数字、符号等。在编程中,文本主要用于表示和展示信息,例如在用户界面中展示消息,或者在文件中存储数据。不同的编程语言有不同的方式来处理文本,一般在内存中表示为字符串。
2024-06-26 18:21:36
337
原创 python:如何连接postgresql指定模式
如:要连接system,则为options="-c search_path=system"
2024-06-04 17:14:41
409
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人