自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

石头缝里的小松鼠(AlySam)

闲余时间学习整理

  • 博客(73)
  • 资源 (5)
  • 收藏
  • 关注

原创 Python+Selenium自动化脚本实现列表信息的多列内容获取

【代码】Python+Selenium自动化脚本实现列表信息的多列内容获取。

2022-10-10 10:02:57 1262

原创 Python+Selenium获取列表页面全部数据时,空值获取不到,最终获取的数据列位置未对应(问题已解决)

解决问题:获取列表页面全部数据时,列表页面存在空值,使用.text获取文本时,空值获取不到,最终获得的整个列表数据列的位置不是一一对应。

2022-09-30 13:58:44 1381

原创 Python+Selenium实现列表元素的查找定位及删除操作

Python+Selenium实现列表元素的查找及删除操作

2022-09-27 17:25:09 2847

原创 Python+Selenium实现列表(tbody)数据的翻页获取

Python+Selenium实现列表数据的翻页获取涉及到的定位元素1、列表表格tbody2、列表总数据元素3、分页数据元素4、下一页图标/按钮元素 # while循环获取列表页面全部数据 def get_list_all_datas(self, table_tbody, total_num_loc, pagination, pagination_selected, next_page, doc=''): """ 参数说明 :

2022-03-24 15:29:25 5472

原创 Jenkins测试报告邮件发送

Jenkins测试报告邮件发送1、在Jenkins中安装Email Extension Plugin插件2、设置Extended E-mail Notification2.1、系统设置--对Extended E-mail Notification进行配置1、在Jenkins中安装Email Extension Plugin插件2、设置Extended E-mail Notification2.1、系统设置–对Extended E-mail Notification进行配置SMTP server

2022-03-04 11:02:03 2802

转载 Jenkins测试报告邮件通知模板(转载)

转载<!DOCTYPE html><html><head><meta charset="UTF-8"><title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title></head><body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">

2022-03-04 10:11:57 1292

原创 Python+Selenium 不打开谷歌浏览器运行脚本

Python+Selenium 不打开谷歌浏览器运行脚本元素无法找到时,可能的一个原因是浏览器分辨率问题chromeOptions是一个配置 chrome 启动是属性的类,可配置chrome参数:add_argument:启动参数add_extension:扩展应用add_encoded_extension:扩展应用add_experimental_option:实验性质的设置参数# 导入ChromeOptions类from selenium.webdriver import Chrom

2022-03-03 09:55:33 2567

原创 软件评测师学习整理

知识理论一、软件测试概述二、软件测试基础1、软件测试的基本概念1.1、什么是软件测试?针对软件产品的检测,称为软件测试。软件测试的对象是软件,包含程序、数据、文档。大量的测试活动需要支持测试的环境。包括软件的运行环境和测试环境,涉及到被测对象软件之外的软硬件环境、网络环境、数据环境甚至是应用环境。1.2、验证与确认国家标准定义:验证(Verification):通过提供客观证据来证实规定需求已得到满足确认(Validation):通过提供客观证据来证实针对某一特定预期用途或应用需求已得到

2021-10-11 17:32:26 4809

原创 Python+Selenium+unittest脚本公共代码整理

1、日志模块# 导入日志模块import logging# 日志文件输出from logging.handlers import RotatingFileHandlerimport time# 日志存在目录from Common import dir_config# 设置日志格式 """asctime:字符串形式的当前时间levelname:文本形式的日志级别filename:调用函数所在模块的文件名称funcName:日志输出的函数名lineno:函数语句执行所在代码行m

2021-09-29 16:33:21 354

原创 Python+Selenium实现非input标签属性的文件上传

1、安装相关模块pyperclip: 实现脚本字段的复制、粘贴安装方式pip install pyperclip2、导入相关模块# python自带的插件,win32api是用来模拟键盘操作import win32api# python自带的插件,win32con是用来控制键盘import win32con# 脚本字段的复制、粘贴import pyperclip3、封装代码涉及到模拟按键等操作可参考链接:https://blog.csdn.net/polyhedronx/arti

2021-09-17 11:21:24 1063

原创 Python识别验证码

1、安装pillow/pytesseractpip install pillowpip install pytesseract2、安装Tesseract-OCR.exe官网下载地址:https://github.com/UB-Mannheim/tesseract/wiki3、修改路径F:\Python3.9\Lib\site-packages\pytesseract找到pytesseract.py文件:修改tesseract_cmd路径为Tesseract-OCR.exe的安装路径

2021-09-13 10:22:58 576

原创 Python疯狂讲义(文件I/O)

十、文件I/O1、使用pathlib模块操作目录PurePath:代表并不访问实际文件系统的“纯路径”。PurePath只是负责对路径字符串执行操作,至于该字符串是否对应实际的路径,不关心。PurePath有两个子类:PurePosixPath和PureWindowsPath分别代表UNIX(Mac OS X)和Windows的风格。UNIX风格的路径和WIndows风格的路径的主要区别在于根路径和路径的分隔符:UNIX风格根路径是斜杠(/),Windows风格的根路径是盘符(c:);UNIX风格

2021-09-08 17:04:20 334

原创 Python疯狂讲义(常见模块:sys/os/random/time/json/正则表达式/set集合)

九、常见模块1、syssys模块代表了Python解释器,主要用于获取和Python解释器相关的信息import syslist_sys = []for e in dir(sys): if not e.startswith('_'): list_sys.append(e)print(list_sys)[‘addaudithook’, ‘api_version’, ‘argv’, ‘audit’, ‘base_exec_prefix’, ‘base_prefix’, ‘

2021-09-08 09:14:01 469

原创 Python疯狂讲义(异常处理、Python类的特殊方法、模块和包)

文章目录六、异常处理1、异常概述2、异常处理机制2.1、使用try...except捕获2.2、异常类的继承体系2.3、多异常捕获六、异常处理Python的异常机制主要依赖try、except、else、finally、raise五个关键字,其中在try关键字后缩进的代码块简称try块,里面放置的是可能引发异常的代码;在except后对应的是异常类型和一个代码块,用于表明该except块处理的这种类型的代码块;在多个except后可以放一个else块,表明程序不出现异常时需要在执行else部分;最后添加

2021-09-05 21:43:48 992

原创 Python习题练习整理

1、循环输出九九乘法表for i in range(1, 10): for j in range(1, i + 1): print(f'{j} x {i} = {i*j}\t', end='') print()1 x 1 = 1 1 x 2 = 2 2 x 2 = 4 1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 1 x 5 = 5 2 x 5 = 10 3 x 5

2021-09-02 16:18:01 291

原创 Python数字转人民币读法

# 数字转人民币读法 (考虑到数据连续为零及小数的处理,但可能还需优化)# 定义中文列表chinese_list = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']# 以4位分隔定义单位unit_list = ['十', '百', '千']# 小数单位decimal_list = ['角', '分']def divide_str(num): # 将一个浮点类型的数据强制转成int型,获取其整数及小数部分内容(小数四舍五入)

2021-09-01 15:51:32 866

原创 Python疯狂讲义学习(变量、列表、元组、字典、流程、函数、类与对象)

文章目录一、变量和简单类型1、单行注释/多行注释2、变量2.1、弱类型语言2.2、使用print函数输出变量2.3、变量的命名规则2.4、Python关键字/内置函数3、数值类型3.1、整型(int)3.2、浮点型(float)3.3、复数4、字符串4.1、字符串/转义字符4.2、拼接字符串4.3、repr和字符串4.4、使用input/raw_input获取用户输入4.5、长字符串4.6、原始字符串4.7、bytes5、深入使用字符串5.1、转义字符5.2、字符串格式化5.3、序列相关方法5.4、大小写相

2021-08-30 16:24:37 2073

原创 Python+Selenium获取列表数据(根据查询值进行编辑/删除操作)

1、获取列表页面表格数据 # 获取列表全部数据 def get_table_content(self): """ 读取列表数据 :return: """ time.sleep(1) # 页面存在iframe(先切换) self.switch_iframe(AXPL.swdj_menu_iframe[0], doc="收文登记首页") list_1= []

2021-07-15 22:30:00 3712

原创 python+selenium断言新增一条数据是否成功(正则判断:新增后列表值数据加1)

# 导入正则模块import re def test_c_administrator_swdj_add_01(self): """ 正常添加一条数据:保存后列表数目叫之前加1; :return: """ time.sleep(1) DW = "测试单位" BH = "Ceshi001" BT = "测试标题" RQ = "2021-07-14"

2021-07-15 11:01:15 1100

原创 Web端功能测试内容总结

一、输入框1、字符型输入框字符格式:英文全角、英文半角、数字、空格、特殊字符等;字符长度:最大长度、最小长度、最大长度+1、最小长度-1等;空格检查:输入字符前/中/后/前后有空格;多行文本输入:允许回车换行、查看详情格式正确等;2、数值型输入框边界值:最大值、最小值、最大值+1、最小值-1;位数:最小位数、最大位数、最小位数-1、最大位数+1、位数较多;异常值:特殊字符、非数值型、空格等;数据类型:支持小数、整数、非负数、分数等;3、日期格式输入框正常值:日期在1-31之

2021-07-08 22:24:31 290 1

原创 接口测试/接口自动化测试常见面试题目整理

1、GET方式和POST方式的区别?对请求参数的处理方式不同(最直观的区别):GET请求:请求的数据会附在URL之后,以“?”分隔URL和传输数据,如果有多个参数使用“&”连接。URL采用的是ASCII编码格式,而不是Unicode编码格式。即所有的非ASCII字符都要在编码之后传输。POST请求:POST请求会把请求参数数据放置在HTTP请求包的Body数据中,数据包的形式可以是“参数名1=参数值1&参数名2=参数值2”,也可以是JSON数据格式。传输数据的大小不同:G

2021-07-06 15:22:04 1006 3

原创 软件测试基础知识整理(详细版)

一、软件测试概述1、软件缺陷软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的表现形式:软件没有实现产品规格说明书所要求的功能模块;软件中出现了产品规格说明指明不应该出现的错误;软件实现了产品规格说明中没有提到的功能需求;软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;软件难以理解、不易使用、运行缓慢、用户体验不友好;产生软件缺陷的原因:需求不清晰;系统结构较为复杂;对程序逻辑路径或者数据范围考虑不全面

2021-07-05 14:08:42 47090 12

原创 接口测试中遇到的Bug整理

1、必填项校验:系统中创建信息时有做必填项校验,但通过接口发送时,未编辑必填项时数据可成功添加;2、未校验密码位数:系统中设置密码时,不符合需求时会给予提示,但通过接口成功发送;3、设置不存在的租户信息:在设置用户的所属租户信息时,所属租户设置的是不存在的值,接口可成功发送;4、删除不存在的账号:通过接口删除不存在的账号时,可发送成功;5、未校验用户名称合法字符:6、给用户分配应用权限时,接口设置成功,但实际系统中未同步更新:7、可以启用(禁用)已被启用(禁

2021-06-29 15:55:42 6908 2

原创 Postman生成测试报告

1、Newman介绍与安装Newman:一款基于nodejs开发的可以运行Postman脚本的工具,并且可以生成测试报告。安装Newman:1、下载地址:(本机Windows 64位zip)http://nodejs.cn/download/解压后安装校验:打开cmd输入【node -v】,看到输出node版本信息,即代表成功2、安装newman安装:npm install -g newman --registry=http://registry.npm.taobao.org校验:输

2021-06-24 16:17:46 479

原创 接口测试基础知识整理

1、接口接口可分为:硬件接口、软件接口;(目前仅关注软件层面的接口知识)。接口:指系统或者组件之间的交互点,通过这些交互点可实现数据的交互(数据交互的通道)。1.2、接口类型按照范围划分:系统之间的接口和程序内部之间的接口。系统之间的接口:多个内部系统之间的交互,内部系统与外部系统的交互;程序内部的接口:方法与方法之间的接口,模块与模块之间的接口;2、接口测试接口测试:是对系统或者组件之间的接口进行测试,主要是校验数据的交换、传递、控制管理过程、以及相互逻辑依赖关系。2.1、接口测试原

2021-06-22 16:02:24 1295 13

原创 自动化测试之日志介绍

1、日志介绍概念:日志就是用于记录系统运行时的信息,对一个事件的记录,也成为Log。1.1、日志的作用- 测试程序- 了解系统程序运行的情况,是否正常- 系统程序运行故障分析与问题定位- 用来做用户行为分析和数据统计1.2、日志的级别日志级别:是指日志信息的优先级、重要性或者严重程度。常见的日志级别:日志级别描述DEBUG调试级别:打印非常详细的日志信息,通常用于对代码的调试;INFO信息级别:打印一般的日志信息,突出强调程序的运行过程;WARNIN

2021-06-18 10:36:26 1104 1

原创 窗口截图、验证码处理

1、窗口截图目的:当程序运行出错时,通过截图文件能够更直观的知道具体是哪个操作步骤出错;窗口截图就是把出错的图片保存到指定的位置;截图方法:driver.get_screenShot_as_file(filename)截图的文件名必须是.png结尾;filename中的文件目录必须是手动创建;2、验证码验证码就是一种随即生成的信息(数字、字母、汉字、图片、计算题等)为了防止恶意的请求行为,增加应用的安全性。2.1、验证码的处理方式方式:1、去掉验证码(测试环境下-采用):开发操作2

2021-06-17 15:48:28 726

原创 Selenium下拉选择框、弹出框、滚动条、iframe、窗口等操作;

一、下拉选择框参考链接:https://blog.csdn.net/yutian8233/article/details/114256413?spm=1001.2014.3001.5501下拉框就是HTML中元素1、Select类实现步骤:导入Select类;实例化Select对象 select = Select(element) element对象表示的是select元素对象;通过select的相关方法选择option选项# 导入Select类from selenium.web

2021-06-17 15:14:45 679 4

原创 Selenium中元素、浏览器、鼠标、键盘操作及获取元素方法介绍;

1、元素操作1.1、为什么要学习元素操作的方法?1、需要让脚本模拟用户给指定元素输入值;2、需要让脚本模拟认为删除元素;3、需要让脚本模拟点击操作;1.2、元素常用操作方法点击操作: element.click() element表示的是元素对象;输入操作: element.send_keys(“value”) element表示的是元素对象,value表示要输入的内容;清除操作: element.clear() element表示的是元素对象,将输入框里面的内容全部清除;d

2021-06-17 14:28:51 905 1

原创 Selenium中元素定位方法详细介绍

一、元素定位基本方法1、如何进行元素定位?元素:由标签头 + 标签尾 + 标签头和标签尾包括的文本内容;元素的信息就是指元素的标签名及元素的属性;元素的层级结构就是指元素之间相互嵌套的层级结构;元素定位最终就是通过元素的信息或者元素的层级结构来进行元素定位;2、浏览器开发者工具介绍浏览器开发者工具主要是用来查看元素的信息,同时也可以查看接口的相关信息;浏览器开发者工具不需要安装,浏览器自带;浏览器开发者工具的启动:F12;选中元素右键点击检查/检查元素(谷歌浏览器、火狐浏览器);

2021-06-17 11:20:26 6802 2

原创 UI自动化测试基础介绍

一、UI自动化测试介绍1、什么是自动化测试概念:由程序代替人工进行系统校验的过程。1.1、自动化测试能解决的问题?1、回归测试针对之前老的功能进行测试,通过自动化代码实现;针对上一版本的问题的回归;2、兼容性测试实例化不同的浏览器驱动就相当于对不同浏览器进行操作,从而解决浏览器的兼容性问题;3、性能测试通过一些工具来模拟多个用户实现并发操作;4、提高工作效率,保障产品质量1.2、自动化测试的优点1、自动化测试能在较少的时间内执行更多的测试用例;2、自动化测试能够减少人

2021-06-16 17:04:19 4154 8

原创 软件测试基础知识整理

测试基础1、 软件测试的定义:软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。2、 为什么不让开发自己做测试1:思维定式2:测试力度3:关注度3、 分类1:功能测试2:自动化测试3:接口测试(Postman)4:性能测试(Jmeter)前置知识学习一、 学习软件测试需要具备的基础知识1:计算机基础2:前端知识3:后端知识4:软件测试理论1、 计算机定义一种可以自动高效进行计算操作的电子设备(PC)1.1、计

2021-06-16 09:38:32 1017

原创 Python+Selenium实现WebUI自动化中获取元素信息相关方式

1:Web获取元素信息获取headers:浏览器的驱动名.titleself.driver.title获取元素大小:.sizetable_td_list2 = table_td_list.size获取元素文本内容:.texttable_td_list2 = table_td_list.text获取元素是否可见:.is_displayed()table_td_list2 = table_td_list.is_displayed()判断元素是否可用:.is_enabled()tabl

2021-06-08 17:15:58 672 1

原创 Python+Selenium获取表格中某一列元素文本内容时返回为空的一种解决办法

1、获取元素文本返回值为空的代码 def askfor_leave_list_reason_perc(self): sleep(1) self.switch_iframe(AFLL.AskforLeave_list_iframe[0], doc="请假列表iframe") Table_tbody = "//div[@id='table_635d6db0595d11ebbecee70b85d7da5f']//div[@class='el-table__f

2021-06-08 16:56:19 2322 5

原创 Yagmail通过QQ邮箱发送邮件实例

1、安装yagmail模块pip install yagmail2、导入模块yagmailimport yagmail3、定义邮件发送函数def send_email(): # 连接邮箱服务器 发送方邮箱+授权码+邮箱服务地址 yag = yagmail.SMTP(user='[email protected]', password='onnxxxxxxxxxxbqbiff', host='smtp.qq.com', encoding='GBK') # 邮件正文 支持

2021-06-07 15:39:27 702

转载 <Python>页面元素定位方式:xpath----轴定位方式

https://blog.csdn.net/weixin_39568072/article/details/78191028?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162095575816780269857309%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162095575816780269857309&biz_i

2021-05-14 10:24:54 227

原创 Python + Selenium + UnitTest自动化测试面试题目整理

1、如何使用Selenium进行自动化测试 ?结合Python + Selenium + UnitTest2、在测试中遇到的问题描述元素定位问题:1、浏览器滑动需要调用js实现;2、非select属性的下拉框使用Xpath方式定位;3、遇到问题如何解决?1、思考2、百度3、请教4、Selenium的工作原理脚本启动driver,然后启动浏览器作为远程服务器,执行脚本发送请求,服务器解析请求作出相应的操作,反馈给客户端(脚本)5、常见的定位方式?id、name、tagName

2021-05-13 11:26:03 3297

原创 Selenium中关于setUp()、 setUpclass()、 tearDown()、 tearDownClass()的区别用法

setUp()、tearDown()setUp():每个测试方法运行前进行(测试前初始化工作,一条用例执行一次,若N次用例就需要执行N次)tearDown():每个测试方法运行结束后运行(测试后的清理工作。一条用例执行一次,若N次用例就执行N次)比如以下测试登录: def setUp(self): executable_path = r"G:\BaiduNetdiskDownload\chromedriver.exe" self.driver = webdriv

2021-05-12 09:48:48 975

转载 autoIT 自动化上传/下载文件图文详解【python selenium】

转载:https://www.cnblogs.com/2niu/p/6134865.html情景:在用selenium进行web页面自动化时,时不时会遇到上传附件的情况,常见的情况就是一个上传按钮,点击后弹出windows窗口,选择文件后上传,如下图所示使用AutoIt这个工具实现该功能:1、下载并安装进入官网:选择AutoIt -> Downloadshttps://www.autoitscript.com/选择Full Installation版本,点击Download Aut

2021-03-17 17:10:53 1006

原创 Python自动化测试之日志清理

示例:import osclass DeleteLogFile: def __init__(self,path_1,path_2): self.path_1 = path_1 self.path_2 = path_2 def delete_file(self): for path in [self.path_1,self.path_2]: all_log_files = os.listdir(path)

2021-03-16 11:10:33 528

自动化测试题目整理.txt

面试题目整理

2021-09-30

资料分析概念及公式完整整理.pdf

整理资料分析相关名词概念、基本公式、解题技巧等

2021-03-18

完整流程测试计划.pdf

该文档详细描述了测试计划里应包含的内容,供大家参考参考

2021-02-21

Appium+Python自动化测试连接真机.doc

该文档详细描述了如何通过adb连接手机,并且在每一步操作都添加了附图,便于查看。

2019-10-31

Appium+Python自动化测试环境搭建.doc

本文档是对于App自动化测试环境的搭建(Appium+Python),详细描述了软件下载及对应的环境变量配置,同时也配有图示,最后,贴上了一个App的最简单的安装登录测试代码。

2019-10-30

空空如也

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

TA关注的人

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