自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 测试111

测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111。

2024-07-28 09:15:12 311 1

原创 网页元素信息获取

【代码】网页元素信息获取。

2024-07-27 14:56:57 190

原创 Selenium相对定位

其中上下还能和左右组合进行链式相对定位,如locate_with().below().to_right_of()

2024-07-27 14:34:52 258

原创 MySQL笔记

DDL语句用于定义和管理数据库对象的结构,这些语句会自动提交常见的DDL语句有:create、alter、drop、truncate。

2024-07-18 15:57:32 804

原创 文件上传与弹窗处理

首先定位到上传图片的元素,通常是input标签,type为file,然后将文件路径用send_keys()方法传入。

2024-07-14 10:34:14 415

原创 显式等待、隐式等待、强制等待

在Selenium中,等待机制是确保页面元素加载完成后在进行操作的关键。分别有三种等待机制:显式等待(Explicit Wait)、隐式等待(Implicit Wait)、强制等待(Force Wait)。

2024-07-13 21:28:53 507

原创 execute_script与JS

JavaScript简称JS,有的测试场景需要JS脚本辅助完成Selenium无法做到的测试工作。webdriver提供了execute_script()方法调用JS代码。execute_script()可以在当前窗口/框架中执行JS脚本,并返回结果。可以使用它操作DOM元素、获取元素属性、执行异步操作等。获取第一个搜索结果的链接文本。查找搜索输入框并输入关键字。获取第一个搜索结果的链接。

2024-07-13 10:25:11 213

原创 Web控件进阶交互

测试时常需要模拟键盘或鼠标操作,可以用Python的ActionChains来模拟。ActionChains是Selenium提供的一个子类,用于生成和执行复杂的用户交互操作,允许将一系列操作链接在一起,然后一次性执行。

2024-07-12 14:54:50 1333

原创 Web自动化测试

Selenium IDE是一个用于Web测试的集成开发环境,是Chrome和FireFox的插件,可以记录和回放与浏览器的交互过程。录制回放方式的稳定性和可靠性有限只支持FireFox、Chrome浏览器对于复杂的页面逻辑处理能力有限编写Selenium测试用例的目的是模拟用户在浏览器上的一些列操作,通过测试脚本来完成对被测对象的自动化测试。Selenium开源免费Selenium支持多种浏览器,如IE、FireFox、Chrome、Safari。

2024-07-12 10:05:55 1950

原创 Web测试方法与技术

用HTML编写的网页中有一些结果是默认且必须存在的,这些结构就叫做网页骨架。

2024-07-10 16:54:31 927

原创 软件缺陷简介

App的UI界面交互和UX/UE用户体验目前常用的是人工校验方式,以自动化作为辅助手段,用UI Diff的方式分析,尝试发现界面中存在的问题,其中人工测试能够发现未知特征的Bug,自动化测试可以断言常用功能是否正常,通过UI Diff可以发现界面结构细节的问题。H5的性能分析方法通常对网页加载的过程进行分析,通过W3C定义的Performance API对程序每个阶段发生的问题进行统计,需要各个浏览器支持对性能方面的分析。Android提供的工具对App交互发生的网络请求进行中间过程的分析。

2024-07-10 09:54:47 637

原创 pandas数据分析(8)

要创建数据透视表,需要将DataFrame作为第一个参数传递给pivot_table函数。index和columns分别指定了哪一列会成为数据透视表的行标签和列标签。values会通过aggfunc被聚合到结果DataFrame中的数据部分。(书上说会自动屏蔽非数值列,然而我报错了,有没有大佬懂的)如果想要将列标题转换为列的值,以便从另一个角度透视数据,可以使用melt。id_vars参数定义了标识,values_vars定义了想要反透视的列。在默认情况下缺失的值不会参与sum和mean的计算。

2024-07-08 21:29:02 384

原创 白盒测试法

白盒测试又称结构测试、透明盒测、逻辑驱动测试或基于代码的测试。一般使用代码覆盖率作为白盒测试的主要度量指标。流程覆盖用路径覆盖率表达,是利用代码执行流代表流程。执行时需要对流程进行裁剪获得一个适合业务的小规模的业务子集。流程覆盖率 = 测试经过的路径 / 业务子集路径。

2024-07-08 10:21:24 165

原创 黑盒测试法

最后对每一个场景生成相关的测试用例,对所有的测试用例重新复审,去掉多余的测试用例。设计判定表首先需要列出所有的条件桩、动作桩,确定规则数量,规则数由条件桩确定,规则数=条件取值数的条件数次方。场景法一般包含基本流、测试流,从一个流程开始,通过业务流程经过的路径来确定测试的过程,并遍历所有的基本流和备选流来完成系统中所有的场景。条件桩表示可能出现这个Bug的所有条件,动作桩表示这个Bug的所有输出结果,条件项为条件桩的取值,动作项为条件项的各个取值情况下的输出结果。计算[1, 100]之间的两个数的和。

2024-07-08 09:43:23 769

原创 软件测试与开发流程

软件测试是对软件进行检测和评估,以确定其是否满足所需结果的过程和方法。它是在规定的条件下对程序进行操作,发现程序错误,从而衡量软件质量,并对其是否满足设计要求进行评估的过程。与计算机系统操作有关的计算机程序文档及数据都可称为软件。程序、文档、数据这三者结合起来就是完整的软件。

2024-07-06 20:22:50 2010

原创 pandas数据分析(7)

如果想在不依赖索引的情况下连接DataFrame中的一列或多列,那么应该使用merge,而不是join。merge可以通过on参数提供的一列或多列作为连接条件,这些列必须是两个DataFrame所共有的,它们会被用来和行进行匹配。会保留左侧df1的所有行,然后用右侧df2中的行去匹配df1的索引。在默认情况下,concat会将DataFrame按行粘合在一起,同时会将各列自动对齐。在连接两个DataFrame时,这两个DataFrame的列会连接在一起,而行的行为会借助集合论的原理来确认。

2024-07-03 10:43:12 227

原创 pandas数据分析(6)

结果DataFrame的索引和列是两个DataFrame的并集:两个DataFrame中都有的字段会被相加,而其他的部分会显示NaN。对Numpy数组进行切片时,返回的是视图。但是DataFrame情况比较复杂,loc和iloc返回的是视图还是副本难以预测。虽然loc和iloc情况比较复杂,但是诸如df.dropna()或df.sort_value("column_name")这样的DataFrame方法 总是返回副本。当算式的操作数是一个DataFrame和一个Series时,默认情况会按索引进行广播。

2024-07-03 08:43:38 398

原创 pandas数据分析(5)

keep参数默认值是first,意思是会保留第一次出现的数据,只将重复数据标记为True。将keep参数设置为False时,所有重复数据(包含第一次出现的数据)都会被标记为True。pandas使用Numpy的np.nan代表缺失数据,显示为NaN。执行drop_duplicates("country", "continent"),如果某些行的country和continent都一样,则保留第一行,删除后续和它一样的行。is_unique用于确认某一列是否包含重复的数据,unique则可以获得去重后的值。

2024-07-02 18:44:31 201

原创 pandas数据分析(4)

修改DataFrame数据的最简单的方法是通过loc和iloc属性为某些元素赋值。首先构造一组数据。

2024-07-01 09:33:58 194

原创 pandas数据分析(3)

布尔索引是借助只包含True或False的Series或DataFrame来选取一个DataFrame的子集。布尔Series可以用来选取DataFrame的特定行和列,布尔DataFrame则用来选取整个DataFrame中的某些值。当提供一个布尔DataFrame作为参考数时,返回的DataFrame会在原DataFrame的基础上,把对应着False的地方变成NaN。:和Python内置的切片语法以及pandas的其他地方不同,在使用标签切片时,标签的区间包含区间的首尾的两个标签。

2024-07-01 08:40:15 753

原创 pandas数据分析(2)

如果在构造DataFrame时没有提供列名,那么pandas会用 从0开始的数字为列编号。

2024-06-30 08:38:25 236

原创 pandas数据分析(1)

pandas,即Python数据分析库(Python data analysis library)

2024-06-29 15:38:11 303

原创 Numpy基础

同构表示数组中的所有数据都必须是同种类型的数据。array1除了最后一个元素是浮点数,其余都是整数,由于Numpy对同构的要求,这个数组的数据类型依然是float64,这个类型足以容纳所有的元素。在Numpy数组中则是在一个方括号内同时提供两个维度的索引和切片参数:array[row,col]。如果对一个标量和Numpy数组求和,那么Numpy会执行按元素的操作,不用自己写遍历元素的算法,称为向量化。使用不同形状的数组进行运算时,Numpy在可能的情况下会自动将较小的数组扩展成较大数组的形状,这就是广播。

2024-06-29 08:40:28 451

原创 Python新特性

在Python3.10中,针对字典的三个方法items、keys、values都增加了一个mapping属性。match...case结构化模式匹配。类似于Java中的switch...case。分别用于合并字典和更新字典。字典添加两个新的运算符。

2024-06-29 07:10:13 140

原创 正则表达式

Python通过re模块实现对正则表达式的支持。

2024-06-13 10:24:06 669

原创 动态语言特性

_slots__对动态添加成员、成员方法有限制。对动态添加类属性、类方法没有限制。types.MethodType的使用是告诉run的self参数是p1。__slots__只对本类有限制,不限制子类。slots限制成员属性和方法。

2024-06-11 13:52:03 258

原创 迭代器的概念 - for循环的本质

生成器都是Iterator对象,但是list、dict、str虽然是Iterable(可迭代对象),但却不是Iterator(迭代器)即实现了iter方法和next方法的对象就是迭代器。

2023-12-12 22:52:20 342

原创 openpyxl库(1)

workbook来源工作簿。min_col开始列。min_row开始行。max_col结束列。max_row结束行。

2023-09-06 21:35:51 224

原创 xlwt\xlrd\xlutils库

更新效果:新生成了xlrd测试-copy.xlsx。表格示例:将红框中的数据补齐。

2023-09-04 21:06:55 166

原创 装饰器核心

装饰器本质上是一个Python函数(其实就是闭包),它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象。functool.wraps是Python的内置装饰器,用于在定义装饰器时保留原始函数的元信息(如函数名、文档字符串等)。staticmethod装饰器同样用于类中的方法,这表示这个方式是一个静态方法,意味着该方法可以直接被调用无需实例化,同时也意味着它没有self参数,也无法访问实例化后的对象。当有多个装饰器时,离函数近的装饰器会优先被执行。

2023-09-02 15:20:17 134

原创 函数式编程核心

高阶函数、闭包closure、偏函数、map函数、reduce函数、filter函数、sorted函数

2023-08-22 22:09:07 94

原创 协程Coroutines

协程(Coroutines),也叫纤程(Fiber)。全称协同程序,用来实现任务协作。是一种在线程中,比线程更轻量化的存在,由程序员自己写程序来管理。当出现IO阻塞时,CPU一直等待IO返回,处于空转状态。这时候用协程,可以执行其他任务。当IO返回结果后,再回来处理数据。充分利用了IO等待时间,提高了效率。

2023-07-23 21:50:04 145

原创 进程Process

进程(Process):拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;进程切换需要的资源最大,效率低。

2023-07-23 20:05:01 104

原创 线程Thread

一个线程如果将一个Event对象的信号标志设置为真,它将唤醒所有等待这个Event对象的线程。Python代码的执行由Python虚拟机来控制,Python设计之初就考虑要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面的线程使用完毕后,下一个线程再使用。互斥锁是多个线程一起抢,抢到锁的线程先执行,没抢到的线程需要等待,等互斥锁使用完释放后,其他等待的线程再去抢这个锁。

2023-07-19 21:35:50 93

原创 Python并发编程

同步和异步强调的时消息通信机制。同步(synchronous):A调用B,等待B返回结果后,A继续执行。异步(asynchronous):A调用B,A继续执行,不等待B返回结果;B有结果了通知A,A再做处理。

2023-07-13 21:54:50 81

原创 Python文件处理-2

Python中,一切皆对象,对象本质上就是一个存储数据的内存块。反序列化是指相反的过程,将读取到的串行化数据转化成对象。shutil模块是python标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等,还可以做文件和文件夹的压缩、解压缩操作。可以直接调用操作系统的可执行文件、命令,直接操作文件、目录等。os.walk()方法思一个简单医用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。os模块提供了对目录或文件的一般操作。,obj就是要被序列化的对象,file指的是存储的文件。

2023-07-09 21:36:07 72

原创 Python文件处理

ASCIIAmerican Standard Code for Information Interchange,美国信息交换标准代码。这是世界上最早最通用的单字节编码系统,主要用来显示现代英语及其他西欧语言。ASCII码用7位表示,只能表示128个字符。只定义了128个字符,用7bit即可完全编码。儿一字节8bit的容量是256,所以一字节ASCII的编码最高位总是0ISO8859-1。

2023-06-27 22:24:45 468

原创 Python异常

有时候需要我们自己定义异常类。自定义异常类一般都是运行时异常,通常继承Exception或其子类即可。命名一般以Error、Exception为后缀。自定义异常由raise语句主动抛出。return str(self.errorinfo) + ",年龄错误!应该在1-150之间"age = int(input("输入年龄:"))else:print("正常年龄:", age)输入年龄:155__main__.AgeError: 155,年龄错误!应该在1-150之间。

2023-06-12 22:38:47 64

原创 Python设计模式

单例模式的核心作用是确保一个类只有一个实例,并且提供一个访问该实例的全局访问点。单例模式只生成一个实例对象,减少了对系统资源的开销。当一个对象的产生需要比较多的资源,如读取配置文件、产生其他依赖对象时,可以产生一个单例对象,然后永久驻留在内存中,从而极大的降低开销。设计模式是面向对象语言特有的内容,是我们在面临一类问题时候的固定做法,设计模式有很多种,比较流行的是GOF(Goup Of Four)23种设计模式。工厂模式实现了创建者和调用者分离。使用专门的工厂类将选择实现类、创建对象进行统一的管理和控制。

2023-06-06 21:50:50 65

原创 继承与组合

除了继承,组合也可以实现代码的复用。组合的核心就是将父类对象作为子类的属性。has-a关系,可以使用组合。也能实现一个类拥有另一个类的方法和属性。is-a关系,可以使用继承。从而实现子类拥有父类的方法和属性。

2023-05-29 22:56:52 51

空空如也

空空如也

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

TA关注的人

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