- 博客(51)
- 收藏
- 关注
原创 12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
即使不懂代码的人,也能通过编辑 excel 数据进行测试。通过读取 excel 数据,进行数据驱动自动化测试。是对 excel 操作进行封装的方法。通过反射函数,实现关键字驱动。是项目的路径以及其他数据内容。和之前 POM 的日志一样。是对各种关键字函数的封装。
2025-05-16 21:05:32
1429
原创 11 web 自动化之 DDT 数据驱动详解
现在主流的设计模式之一(以数据驱动测试)结合 unittest 框架如何实现数据驱动?ddt 模块实现通过不同的数据对同一脚本实现循环测试,最终实现数据与脚本的分离一个类装饰器 + 三个装饰器方法ddt 类装饰器:装饰继承 unittest.TestCase 的类data 装饰器方法 data()装饰器方法:把列表、元组、字典作为参数unpack 装饰器方法:实现把复杂的数据实现分解成多个数据。
2025-05-15 17:33:56
509
原创 09 web 自动化之 KDT 关键字驱动详解
1、什么是关键字驱动?(以关键字函数驱动测试)关键字驱动又叫动作字驱动,把项目业务封装成关键字函数,再基于关键字函数实现自动化测试2、关键字驱动测试原理关键字驱动测试是一种基于关键字和动作的方法,它将测试用例分解为一系列的关键字和对应的操作,通过组合不同的关键字和操作来实现各种测试场景。关键字可以是函数名、命令、操作步骤等,测试人员和开发人员可以通过维护关键字库来管理和扩展测试用例。3、关键字驱动测试的优势提高测试用例的可读性和可维护性。
2025-05-13 21:06:12
635
原创 POM 和关键字驱动区别
总的来说,POM 和关键字驱动都是为了提高 UI 自动化测试的可维护性和可扩展性。POM 更适合于页面结构复杂、变化频繁的场景,而关键字驱动更适合于业务流程复杂、需要高度抽象的场景。在实际应用中,两者也可以结合使用,以发挥各自的优势。
2025-05-13 13:25:07
257
原创 08 web 自动化之 PO 设计模式详解
页面对象模型 WEB自动化测试框架应用最为广泛的一种框架设计模式web项目由很多页面组成,把每个页面当做页面对象来进行设计什么是对象?通过类描述一组对象 对象=属性+方法某电商项目 = n 个 页面登录页面=对每个页面设计对应页面类=相同属性+相同的方法#属性?元素、页面标题…#方法?你在页面进行操作/行为:点击、定位、输入…等等元素及页面的操作每个页面有相同的属性及方法 比如:点击、输入、元素定位第一层 basepage 层 每个页面有相同的属性及方法 比如:点击、输入、元素定位。
2025-05-13 11:16:12
438
原创 07 web 自动化之 Unittest 应用:测试报告&装饰器&断言
官网下载 HtmlTestRunner.py 只能支持 python2 版本,支持 Python3 ,需要做修改。企业测试报告的优化及定制 优化测试报告模板 通过 js+html/html5。pytest+allure 生成更加美观的测试报告+优化定制(装饰器)安装三方库:BeatifulReport。路径:python安装路径/Lib。
2025-05-12 23:50:48
347
原创 06 web 自动化之 Unittest 四大组件
Unittest 框架:框架=测试模块+测试管理模块+测试统计模块,python 的内置模块。Web 自动化:的前置操作及后置操作。
2025-05-12 21:43:48
960
原创 05 web 自动化之 selenium 下拉&鼠标键盘&文件上传
懒加载/慢加载 必须把元素移动可见区域,才会实现加载 ----》滚动条操作。javascript 实现 调用 execute_script。javascript 实现 调用 execute_script。什么情况下,需要把元素放到可见区域我才可以操作呢?只读控件的日期控件,如何实现输入?2、使用方法-图文详情。
2025-05-12 13:27:19
460
原创 04 web 自动化之 selenium 元素四大操作&三大切换&等待
【代码】web 自动化之 selenium 元素四大操作&三大切换&等待。
2025-05-09 21:13:14
357
原创 03 web 自动化之 Selenium 元素定位和浏览器操作
web 自动化测试就是通过代码对网页进行测试,在对网页进行测试之前,必须掌握如何。
2025-05-08 18:40:38
333
原创 02 web 自动化之 selenium+webdriver 环境搭建及原理讲解
selenium 是企业主流应用广泛 web 自动化测试框架selenium 的三大组件:1、selenium IDE 浏览器插件:实现脚本录制2、WebDriver 实现对浏览器的各种操作(API 包)3、Grid 分布式执行,用例同时在多个浏览器同时执行,提搞测试效率。
2025-05-08 18:07:30
949
原创 Selenium+Pytest+POM
创建一个对象,就会执行它的 init 方法1、执行 Maintest_login4、执行 LoginPage 页的方法5、执行后置:print(“关闭浏览器”)未完待续。。。。。。
2025-03-24 17:31:08
1030
原创 JMeter 性能测试
第三种错误方案:线程数:20 ,Ramp-UP:1,循环:永远,持续时间 10s,常数吞吐量定时器(每分钟样本量 60 个)–【巨大 BUG】第二种错误方案:线程数:20 ,Ramp-UP:1,循环:永远,持续时间 10s?RPS:每秒请求数-每秒向服务器发送多少请求数(一个场景,系统面临多大的压力)具体场景:比如压测目标:确认系统能否达到 20 TPS,持续压测 10 s。第一种错误方案:线程数:1 ,Ramp-UP:1,循环:20?线程组:线程-虚拟用户(VU),不同场景不同线程组。
2025-03-17 23:03:14
478
原创 Android 7 及以上夜神模拟器,Fiddler 抓 https 包
使用 OpenSSL 对 FiddlerRoot.cer 证书进行转换,然后放入手机系统证书目录内(/system/etc/security/cacerts------系统证书具体目录),并对其附加读写权限,以下为详细步骤。1、 下载抓包工具 Fiddler 或 Fiddler everywhere 版。3.1 连续点击下图所指的版本号五次,即可进入开发者模式。,进入下图页面,按照顺序进行配置环境变量地址即可。5.2 这个文件夹内可以看到有个。4、 AndroidSDK 安装。3、 OpenSSL 安装。
2025-03-13 15:52:05
2536
原创 fiddler everywhere 绿色永久版
由于版本号比较低,打开 FiddlerEverywhere 会出现提示更新问题,所以需要修改版本号,以保证可以正常使用。
2025-03-07 19:12:35
1279
原创 微信小程序-自定义组件
如果是公共组件,建议放在项目根目录的 components 文件夹中如果是页面组件,建议放在对应页面的目录下一个组件一个文件夹自定义组件创建完成后,还不能使用,需要进行注册如果是公共组件,需要在 app.json 文件中配置 usingComponents 进行注册,注册后可以在任意页面使用如果是页面组件,需要在 .json 文件中配置 usingComponents 进行注册,注册后只能在当前页面使用。
2025-02-16 16:46:38
500
原创 微信小程序-小程序 API
小程序开发框架提供丰富的微信原生 API,可以方便调起微信提供的能力,比如:获取用户信息、微信登录、微信支付等,小程序提供的 API 几乎都挂载在 wx 对象下,例如:wx.request()、wx.setStorage() 等,wx 对象上实际上就是小程序的宿主环境微信所提供的全局对象。小程序API分类:1、当接口参数 Object 对象中不包含 success/fail/complete 时默认返回 Promise。
2025-02-08 18:12:55
846
原创 微信小程序-生命周期
2、启动时异步更新:在启动前没有发现更新,小程序每次冷启动时,都会异步检查是否有更新版本。在启动时异步更新情况下,如果开发者希望可以立即版本更新,可以使用 wx.getUpdateManager API 进行处理,在有新版本时提示用户重启小程序更新版本。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序。在访问小程序时,微信会将小程序的代码包缓存到本地,在开发者发布了新的小程序版本后,微信客户端会检查本地缓存的小程序有没有新版本,并进行小程序代码包的更新。
2025-02-07 18:49:00
800
原创 微信小程序开发-wxml语法
小程序页面中使用的数据均需要在Page()方法的data对象中声明定义,将数据声明好以后,在WXML中使用Mustache语法(双大括号{{}})将变量包起来,从而将数据绑定。
2025-01-24 17:13:05
449
原创 微信小程序开发-事件系统
1、事件传参:在触发事件时,将一些数据作为参数传递给处理事件函数的过程在组件上通过data-方式进行自定义要传递的数据,其中是自定义的属性2、若传参时,自定义属性是多个单词,单词之间用-进行连接,在事件对象中会转换为小驼峰写法,比如:data-parent-id 会转换为 parentId3、若传参时,自定义属性是多个单词,单词用小驼峰写法,在事件对象中会转换为全部小写法,比如:data-parentId 会转换为 parentid。
2025-01-23 16:55:33
336
原创 ”彩色的验证码,使用pytesseract识别出来的验证码内容一直是空“的解决办法
【代码】”彩色的验证码,使用pytesseract识别出来的验证码内容一直是空“的解决办法。
2025-01-22 10:18:51
511
原创 Selenium定位元素方法
Selenium极力推荐使用CSS 定位,而不是XPath来定位元素,原因是CSS 定位比XPath 定速度快,语法也更加简洁。
2025-01-22 10:16:31
146
原创 Docker 使用
2、新建并运行容器的命令:docker run -t -i ubuntu:18.04 /bin/bash。5、删除本地镜像:docker image rm 镜像ID的前3个字符/镜像名/镜像摘要。6、启动已终止容器:docker container start 容器ID。1、获取镜像的命令:docker pull ubuntu:18.04。4、列出已经下载下来的镜像:docker image ls。3、退出容器的命令:exit。
2025-01-22 10:14:08
454
原创 微信小程序开发-各组件
当编写微信小程序的样式文件时,可以使用background-image来设置元素的背景图像,注意:background-image不支持本地路径!需求:绘制一个盒子,让盒子的宽度占屏幕的一半,如果要实现需求,不能使用px,px是固定宽度,不能实现自适应,需要小程序提供的 rpx,小程序规定屏幕宽度都是750rpx。2.如果用iPhone 6作为视觉稿的标准,量取多少px,直接写多少rpx即可,开发起来更方便,也能够适配屏幕的宽度。在进行页面跳转时,需要在路径前面加上/斜线,否则跳转不成功。
2025-01-22 09:56:49
385
原创 Android 刷机
参考:https://blog.csdn.net/A_LiuHaiYang/article/details/72821211。如果按照官方文档中所说的执行 flash-all.bat 一键刷机脚本文件不成功。则打开flash-all.bat 文件,按照里面的说明单行执行命令即可。
2025-01-22 09:24:14
115
原创 adb 相关命令
可见官网文档:https://developer.android.com/studio/command-line/adb。此命令有助于通过使用大屏幕设备模拟小屏幕分辨率来测试不同屏幕尺寸的应用,反之亦然。参考于:https://www.jianshu.com/p/cebb7778df7b。
2025-01-22 09:22:52
706
原创 Python 爬虫——爬取Web页面图片
Web地址:http://p.weather.com.cn/2017/06/2720826.shtml#p=1。从网页页面上批量下载jpg格式图片,并按照数字递增命名保存到指定的文件夹。
2025-01-22 09:20:06
364
原创 【Mac】Python相关知识经验
终端中输入命令:python3 -m pip install pillow 按回车,等待pillow下载安装。mac下给Python3安装第三方库pillow,处理图片。NOTE: 其他模块同理,如pytesseract。
2025-01-22 09:15:10
605
原创 功能测试、自动化测试
调用被测试的接口,构造相应的数据(id=1,name=zhangsan),得到返回值,是200成功,并返回查询结果。元测试是测试中的最基本的测试, 也是测试中的最小单元, 它的对象是函数对象,也可以包含输入输出, 针对的是函数功能或者函数的内部逻辑方面。这里的自动化主要包含三个层面的自动化,单元测试自动化,接口测试自动化和web测试自动化。所以,从测试的行为本质上来看,功能测试与单元自动化测试,接口自动化测试和web自动化测试并没有区别。唯一的区别是,一个由人来执行,一个由代码或工具执行。
2025-01-22 09:04:57
188
原创 多线程与多进程
线程是进程中的一个实体,是被系统独立调度和分派的基本单位,一个进程可以包含多个线程,但是线程不能包含多个进程。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。”: 表示如果当前模块是被直接运行的,则该语句之后代码块被运行,如果模块是被导入的,则代码块不被运行。案例:一个学生先用2秒说话,接着用3秒写字,最后结束。
2025-01-22 09:04:06
130
原创 测试点集合
3.如果数据量巨大,这个数值显示出来是否会影响后面的显示,或者页面的布局。4.用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明。5.如果用户更新了图标后,其他用户能够显示这个用户的新图标。特别是在用户粘贴数据的时候。1.图标是否可更换,可更换,需要考虑不同图片的格式和尺寸。9)连续多次选择不同的文件,查看是否上传最后一次选择的文件。2.如果用户更换了图标,再登录时图标需要做相应的更新。2.标题如果很长,显示不下的部分是否显示为省略号。5.如果数据增加,或减少了,能否显示更新的数据。
2025-01-22 09:00:47
307
原创 测试用例方法总结
测试用例是指为实施测试而向被测试系统提供的输入数据,操作或各种环境设置以及期望结果的一个特定的结合。(测试用例就是确定在什么环境下进行测试,测试哪些内容,进行测试的具体步骤,以及测试结果是否正确的标准)。
2025-01-22 08:58:54
829
原创 Swift 3.0 Preview 1更新内容中文翻译
链接:https://github.com/code98/Swift3.0Swift3.0Swift 3.0 Preview 1更新内容中文翻译 http://www.liangkun.info前言随着WWDC 2016的召开,苹果正式发布了Swift 3.0 Preview 1,这是苹果Swift3语言的首个稳定开发者预览版。苹果在其Swift.org官方博客中称,Preview 1版本比代码库中
2016-07-27 10:46:38
846
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人