- 博客(72)
- 资源 (1)
- 收藏
- 关注
原创 你怎么选择 AI 大模型
AI 大模型就是一个。你说一句需求,它就能顺着给你输出答案、写代码、写文案、出方案,看起来啥都懂——本质是靠海量数据练出来的“概率高手”。
2026-10-10 21:38:19
185
原创 AI大模型面试问题一,问题续写
1、不能靠人看,自动化指标校验,比如准确率(和标准答案比对)、召回率、格式合规率、有没有出现违禁词、是否遵循指令。1、不会把所有请求都拿去人工评审,而是按场景、难度、用户类型分层抽样,保证样本能代表真实线上情况。2、就得靠人看,核心场景抽样打分,比如逻辑性、事实准确性、有用性看人工评估。可以看看问题六的一些措施,比如模型分级使用,优化prompt提示词,缓存。3、模型分级,简单问题用小模型 / 轻量版,复杂问题才调用大模型。5、日常监控告警,监控调用成功率、耗时、错误码,异常及时报警。
2026-10-10 14:06:15
96
原创 AI大模型面试问题一,值得收藏!
什么是AI大模型:AI 大模型就是一个,你说一句需求,它就能顺着给你输出答案、写代码、写文案、出方案,看起来啥都懂,本质是靠海量数据练出来的 “概率高手”它的工作原理是什么:基于海量文本学来的语言规律,元地往下概率接龙。训练阶段:1、喂海量 “教材”。2、用 “神经网络” 记规律。3、先打底子,再学规矩推理阶段:1、先拆了你问题。2、它先结合你说的整段话,算出下一个词概率最高的是什么,选出第一名,作为回复的第一个词。
2026-10-10 10:05:42
127
原创 Gird并行执行时,如何保证用例之间互不干扰?
1、每个并行线程,进程持有独立的WebDriver session,pytest-xdist每个worker独立的fixture初始化。3、避免测试用例A改了配置,测试用例B断言失败这种顺序依赖,任何测试用例不应该依赖其他用例的执行结果。2、每个并行用例使用独立账号独立数据集,禁止两个用例改用一条数据;用例内自建数据,用例后清理。4、并发下偶现失败可能是资源竞争导致的,先查根因再加重试,不要用重试掩盖数据污染的问题。
2026-09-11 18:15:17
35
原创 页面数据是异步接口返回的,元素晚于页面加载速度,除了time.sleep()方法外还有什么系统优化方案?
推荐使用显式等待,只针对特定条件的轮询检查,条件满足立即执行,达到最大时间抛出异常,保障稳定性的同时节省时间。使用time.sleep()本质是用固定的时间去赌概率,存在时间短了不稳定,时间长了效率低的问题。
2026-09-11 13:23:13
138
原创 XPath和CSS选择器你会怎么选?
CSS选择器,语法简洁,引擎解析快,可读性好,但是限制不能向上查找父级,不能文本定位。只适合大部分常规定位。XPath选择器,能力更强,支持文本匹配,轴定位,可以从子找父,从兄弟找目标,就是性能差,可读性差。优先级ID>稳定的data*属性>CSS>XPath。
2026-09-11 13:16:06
171
原创 StableElementReferenceException是什么场景下出现的,怎么解决?
当页面发生局部刷新或者重新渲染后,原来定位到WebElement引用已经指向了一个被销毁的旧的DOM节点,此时再操作该元素就会抛出StableElementReferenceException。1、把元素定位封装成方法,每次操作都重新find_element,而不是把元素存成变量长期持有。2、用自定义的wait_for_stable_free逻辑,捕获Stable后重新定位操作。3、操作触发重绘后,先等一个旧元素消失,新元素出现的条件。
2026-09-11 13:12:14
104
原创 显式等待和隐式等待有什么区别?如果混合使用会发生什么?
如果混合使用,两个时间会出现叠加,比如隐式等待10秒+显式等待,找一个不存在的元素时,最多出现20秒的等待时间甚至更久,并且原因不可预测。隐式等待:WebDriverWait(driver,n).until(expected_conditions.xxx) 针对单操作,可以自定义等待条件,可见,可点击,文本出现,自定义函数,颗粒度更细致。元素没有出现就轮询等待,做多等待n秒,一旦设置对整个driver生命周期有效,他的特点是只等元素存在,不管元素是否可见可操作。
2026-09-11 11:49:10
83
原创 怎么优化自动化用例太多导致执行时间长的问题?
通过分层执行策略(冒烟集即时触发,回归集定时运行)、并发执行(pytest-xdist多进程、Selenium Grid多浏览器)、显式等待优化、复用登录态(Session级fixture)、优先接口验证及分布式执行(Jenkins多节点分片),全面提升自动化测试效率与稳定性。
2026-09-10 15:32:24
82
原创 数据驱动,如何在pytest+Excel场景下落地?
数据驱动测试是什么?是通过测试数据外置(EXCEL/CSV/JSON/DB),同一套脚本通过加载不同的数据执行多轮验证。第一步:使用openpyxl读取Excel用例的数据,封装成列表+封装成数据校验。第二步:转换为parametrize可用的数据结构。
2026-09-10 15:25:30
153
原创 怎么减少自动化测试中的冗余用例?
3、删除低价值用例:长期无bug检出,执行耗时高,维护成本大于收益的用例,定期评审下线。2、分层归位:能在接口层面验证的不要UI层去做,因为UI层用例贵且非常脆弱。1、功能点用例去重,同一个功能点被多个用例覆盖且验证内容相同时合并。6、基线用例集:明确冒烟集,回归集,全量集,按需执行而非每次全跑。4、数据驱动合并:步骤相同仅数据补贴用例合并成一条参数化用例。5、POM复用:公共操作封装,避免用例间复制粘贴步骤。
2026-09-10 13:46:21
147
原创 如何提高自动化测试的覆盖率?
1、首先基于需求梳理功能点清单(工作中的重点),建立功能点到用例的映射,便于找出遗漏。3、场景补充:等价类、边界值、异常流,并发和历史bug回归场景。4、线上bug转成下个版本的回归用例(工作中的得分点)。2、分层覆盖:单元测试覆盖核心逻辑,这个成本低。接口测试覆盖业务规则,异常场景,这个性价比高。UI自动化只覆盖核心主流程。
2026-09-10 13:39:41
159
原创 Jenkins和GitLab CI在工作中应该怎么选择?
Jenkins需独立部署,配置灵活但维护复杂;GitLab CI内置于GitLab,开箱即用,纯YAML配置便于版本化管理。Jenkins插件生态丰富,适合复杂多语言项目及老系统;GitLab CI轻量高效,适用于流程简单、代码集中于GitLab的场景。分布式能力上,Jenkins成熟,GitLab Runner更轻量。选择应根据项目复杂度与运维成本权衡。
2026-09-09 12:18:39
131
原创 出个整个方案把自动化测试集成后CI/CD流水线中
环境管理:流水线自动部署测试环境,等待服务健康检查通过后再跑用例。质量门禁:用例通过率等于阈值(95%)阻断合并/部署。分层执行:单元测试、接口自动化、UI自动化。失败自动截图/日志归档,方便定位。发版前的触发:跑核心业务+冒烟。报告推送(Allure+邮件)失败自动重跑flaky用例。定时触发:每晚跑全量回归。提交触发:跑冒烟用例。
2026-09-09 12:01:20
76
原创 Gitlab CI的流水线配置文件是什么?
配置文件是项目根目录的.gitlab-ci.yaml。artifacts: 保存测试报告等产物。stages: 流水线阶段,按序执行。only/rules: 触发条件。script: 具体执行命令。Runner:执行任务的机器。
2026-09-09 11:44:59
167
原创 jenkins中如何配置一个自动化测试任务?
4、构建步骤:执行shell/batch, 比如pytest -m smoke --alluredir=./reports/allure。1、新建任务,选择自由风格项目或者Pipeline。2、源码管理,配置Git仓库地址+凭证+触发分支。Webhook 代码提交后主动通知Jenkins。Poll SCM 定时轮询代码变更。邮件/钉钉 通知测试结果。测试不通过标记构建失败。生成Allure报告。
2026-09-09 11:37:43
107
原创 什么是CI/CD?自动化测试在其中的价值是什么?
CI就是持续集成,意思是开发人员频繁提交代码到主干上,每次提交自动出发构建+测试,尽早发现问题。CD就是持续交付部署,验证通过的代码自动打包,发布到测试环境或者生产环境。3、质量门禁,测试不通过自动阻断流水线,防止带病上线。2、回归测试自动化,保障每次发版的质量。1、提交即验证,在早期发现问题。4、测试报告的自动生成和通知。
2026-09-09 09:36:21
215
原创 如何设计一个企业级的Ui自动化测试框架?
——common/ 公共层:日志、截图、工具类、数据库操作等。|——pages/ POM页面对象层,元素定位+页面操作。1、分层解耦,用例和页面分离,数据和脚本分离,配置和环境分离。|——testcases/ 测试用例层,只写业务验证逻辑。|——config/ 配置层 环境地址,账号等。|——data/ 数据层 测试数据。|——reports/ 报告输出。2、失败自动截图+日志记录。
2026-09-08 22:44:37
86
原创 pytest的fixture是什么?说下他的作用域和经典的用法。
fixture是pytest的前置和后置处置机制,通过装饰器@pytest.fixture来声明,测试函数以参数名方法使用,依赖注入。经典用法:登陆态复用,数据库链接管理,测试数据准备和清楚,conftest.py中共享给整个项目。seesion:整个测试会话执行一次。function:每个用例执行一次。module:每个py文件执行一次。class:每个测试类执行一次。
2026-09-08 22:37:32
135
原创 pytest和unittest有哪些区别?为啥主流更倾向于使用pytest?
2、从前后置来看,unittest有setUp、tearDown,setUpClass。pytest有fixture,功能更加强大,支持作用域,依赖注入。4、从插件生态上来看:unittest的生态插件比较少,而pytest的插件生态相对就比较多,例如有pytest-xdist,pytest-html。5、从用例筛选上来看,unittest的筛检能力有限,而pytest的筛检能力-m标题,-k关键字更加灵活。总结就是pytest写法简洁,fixture机制优雅,参数化原生支持,插件生态更加强大。
2026-09-08 22:29:31
117
原创 数据驱动测试和关键字驱动测试有什么区别?
从数据来源来说:数据驱动测试的数据来源鱼EXCEL,CSV,YAML,数据库。关键字驱动测试的数据来源是关键字,如open, click,input.典型实现:数据驱动测试:pytest.mark.parametrize+excel,ddt。从解决问题上来看:数据驱动测试是同一流程用多组数据验证。核心来说:数据驱动测试,测试数据和脚本是分开的;关键字驱动测试是操作步骤和关键字和脚本是分离的。从适用场景来看:数据驱动测试多应用于大量等价类、边界值场景。关键字驱动测试应用于业务步骤固定、流程型系统。
2026-09-08 22:16:32
196
原创 什么是Page Object Model(POM)?他的核心优势是什么?
POM是一种自动化测试设计模式,把每个页面或者组件封装成一个独立的类(Page类),页面元素定位和操作方式都放在Page类中,测试用例只需要调用Page类中,测试用例只调用Page类提供的方法,不直接操作元素。1、页面元素变化只需要修改对应的Page类,测试用例不用改。2、同一个页面的操作可被多个用例复用。4、元素定位集中管理,避免重复代码。3、用例更像业务语言一样容易维护。
2026-09-08 21:30:17
147
原创 【笔记一】B/S结构的软件系统的大体流程
Apache接受到浏览器的请求后如果发现自身处理不了这个请求。如不合法则向Apache返回错误信息,再由Apache把错误的信息返回给浏览器.如果这个请求是合法的,则有PHP服务软件和MYSQL数据库软件共同完成,请求处理完成后由PHP服务软件把服务软件处理后的结果反馈给Apache,再由Apache把处理后的结果反馈给浏览器。如果发现浏览器发送过来的请求是自身可以处理的,则由Apache自身处理这个请求,并把处理后的结果返回给浏览器。1、你的电脑有IE浏览器,他的作用是向WEB服务器发送请求的。
2025-07-16 22:54:21
240
原创 支付流程测试
1,安全权限测试:登录或者不登录2,选择的支付方法网上银行或用信用卡直接支付,网上账号支付,第三方支付平台。借记卡未开通网上银行有无提醒,每家银行的接口测试信用卡是否开通网上银行,当天有无支付上限借记卡和信用卡是直接输入卡号,密码,验证码,卡上专用码,还是直接使用用户名和密码加动态支付。直接支付是否考虑到充值费用和所支付的费用是否平衡,是否有一定的手续费系统账号支付,将银行卡或者第三方钱转到系统账号进行支付,检测账户余额不足式是否有提示第三方平台支付,接口的测试是否支持批量支付是否需要
2022-02-25 15:27:56
843
原创 接口自动化的断言是怎么实现的?
把断言封装成一个方法,这个方法会读取yaml文件中的validata字段,包括断言的方式和断言的数据,然后在后台实现断言,并且提取在报告中,框架封装完成之后不需要写任何python代码就可以实现断言。功能测试不需要写python脚本,只需要写yaml格式的测试用例即可实现自动化。...
2022-02-20 17:39:54
1564
原创 Requests中的Session会话管理的作用是什么?
因为很多接口都需要使用cookie和session来记录登录状态,而很多接口必须要又一个登录状态才可以请求成功,Requests中的Session会话管理的作用就是自动的记录cookie和session的登录状态。
2022-02-20 17:23:20
5853
原创 接口自动化测试框架中,接口关联你是怎么处理的?
1,通过一个yaml文件来独立的保存所有的中间提取的变量,这个变量在执行用例之前清空,confitest2,在测试用例的yaml文件里面通过一个关键词exract提起变量,json提取和正则表达式提取。3,在下一个接口通过{{}}或者${}的方式取值。...
2022-02-20 17:18:13
1176
原创 在现有的基础上给你一个新业务线你是怎么做接口自动化的?
首先熟悉新业务线的业务,然后熟悉已经搭建好的接口自动化的框架,然后对当前框架里面加入符合框架的接口自动化的测试用例,根据实际情况提出一些对框架的建议。
2022-02-20 17:00:11
270
原创 在执行脚本过程中,如何实现当前元素的高亮显示
必须要做,利用JavaScript去修改你当前定位元素的style,在style里面加入border:3px red soild这个样式。
2022-02-20 16:54:43
709
原创 自动化中的三种等待,她们又什特点?
强制等待:time.sleep(秒)隐式等待:全局等待显示等待:一般和匿名函数使用,针对某一个元素,一般和定位元素封装
2022-02-20 16:48:00
207
原创 你在上一家公司做自动化测试用的什么框架
python+seleinum+unitest/putest+ddt+htmltestrunner+jeninsrf+seleinum2librarypython+request+pytest+paramters+allure+jenins+yaml
2022-02-20 16:29:41
568
原创 举例子说明,你在工作中遇到过哪些异常,用过哪些Python库
异常:NoSuchElementExceotion 没有此元素异常NoSuchAttributeException 没有如此属性的异常NoSuchFrameException 没有如此框架的异常ElementNoVisibleException 元素不可见异常ElementNotSlectException 元素不可选异常TimeOutException 超时异常ArrayIndexOutException 数组下标
2022-02-20 16:18:01
455
原创 WEB自动化测试用例如何设计?如何提高WEB自动化用例脚本的稳定性
用例设计:自动化用例是从功能测试用例里面提取出来的,主要提取的是冒烟用例和回归测试的用例,提取需要遵守一下的原则。1,优先覆盖核心功能用例,核心流程用例。2,尽量不要选复杂的用例。3,选取一些重复执行的用例。4,一般选取正向用例。如何提高稳定性:1,尽量使用相对路径定位元素。2,定位元素需要封装显示等待。3,加入用例失败重跑机制。4,自动化测试的环境区分其他环境。...
2022-02-18 00:03:03
1059
原创 说说你对数据驱动和关键字驱动的理解
数据驱动是从数据文件(excel,csv,yaml,数据库)读取输入,输出的数据,然后通过变量传入自动化测试用例中,在整个过程中,数据的读取,测试状态,测试信息全部在测试用例里面,测试数据都是数据文件中,通过修改数据达到驱动自动化用例执行的方式叫做数据驱动。关键字驱动时从面向对象的思维出发,同样的业务逻辑会封装成一个函数,这个函数的名字就叫关键字,不同的关键字实现不同的业务逻辑,当所有的业务逻辑都可以通过调用关键字来实现的时候,就是关键字驱动框架。一般情况下企业里面都是数据驱动和关键字驱动一起使用。
2022-02-17 22:30:28
1207
原创 selenuim的相关问题之Select
select = Select(定位到的select整个元素)定位的浙江省select.select_by_value(“12596”) # 通过value值来进行定位定位天津市select.select_by_index(2) # 通过下标,注意从0开始定位的江苏省select.select_by_visible_text(‘江苏省’) # 通过option内部的值...
2022-02-17 19:54:45
218
原创 selenium常用的相关方法之cookie的获取
COOKIE的方法:#获取cookiefrom selenium import webdriver#cookie的方法#操作句柄driver=webdriver.Chrome(r'C:\Program Files\Google\Chrome\Application\chromedriver.exe')driver.get('http://www.tp_shop.cn/')#获取网页所有的cookielist=driver.get_cookies()#指定获取name的cookie信息li
2022-02-17 18:52:28
4661
原创 什么是POM模式?为什么要使用它?
POM模式:全称page object model,页面对象摩西,把页面当成对象,而元素是其属性,页面的操作就是对象的行为(方法),一般情况下分为三层,基础封装层BasePage,PO页面对象层,TestCase测试用例层。因为使用测试用例更加简单清晰,把很多业务操作封装到PO页面对象,用的时候调用。如果页面有动,只需要修改PO页面对象的属性就行,增强代码的维护性。...
2022-02-16 23:55:23
2681
原创 接口自动化测试和WEB自动化测试怎么做?
1),首先项目组要做自动化的可行性分析,(项目的业务是否频繁更换,自动化脚本是否可以反复持久的使用。)自动化率可以做到一个什么样子的程度。(覆盖率)2),调研一下团队对于自动化技术的程度,一般会有demo演示3),制定测试计划,搭建测试框架,提取和编写测试自动化测试用例,组长搭建,组员修改脚本,维护脚本,无人值守jenkins4),把自动化流程化,框架出使用文档并规范文档5),持续不断的完善框架,兼容新的功能。6),把自动化测试标准推广到其他项目...
2022-02-16 23:22:22
755
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅