自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 arthas的安装和使用

本文介绍了Arthas工具的下载安装及基本使用方法。首先通过curl命令下载arthas-boot.jar文件,然后通过java命令启动并连接到目标Java进程。文章详细展示了安装过程可能出现的错误提示,如缺少Java进程时需先启动应用。安装完成后可使用help命令查看所有支持的功能,包括类反编译、方法监控、线程分析等。重点介绍了几个常用命令:trace用于追踪方法耗时、dashboard查看JVM运行状态、thread分析线程信息。这些功能能有效帮助开发者诊断Java应用性能问题,是线上问题排查的重要工具

2026-01-06 23:58:15 355

原创 计算机网络基础知识

计算机网络是通过通信设备连接独立计算机系统,实现资源共享与信息传递的技术体系。其核心功能包括数据通信、资源共享、分布式处理等,并通过分层结构实现标准化运作。网络体系主要分为四层(网络接口层、网际层、传输层、应用层)或七层OSI模型(物理层至应用层),每层通过特定协议实现功能。关键协议如TCP(可靠连接)与UDP(高效传输)在传输层发挥作用,HTTP/HTTPS等应用层协议支撑网络服务。性能指标包括速率、带宽、吞吐量和时延等,网络诊断工具(ping/tracert)用于检测连

2026-01-05 21:39:39 1056

原创 数据库基础知识

本文系统梳理了数据库核心概念与技术要点。数据库是结构化存储数据的仓库,采用三级模式结构(外模式、模式、内模式)实现数据独立性。SQL语言包含DDL、DML、DCL和TCL四大类操作,连接查询需注意过滤条件放置位置。索引类型多样,但存在运算、LIKE通配等失效场景。优化手段包括合理建索引、避免回表等。事务具备ACID特性,隔离级别分为读未提交至串行化4级,可能引发脏读等问题。InnoDB支持事务行锁,MyISAM适合读密集型场景。掌握这些基础知识对数据库设计与优化至关重要。

2026-01-05 21:32:20 386

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

本文概述了软件测试的基本概念和工作流程。主要内容包括:软件测试是通过运行系统验证实际与预期结果一致的过程,旨在发现缺陷、评估质量和降低风险。介绍了测试工作流程(需求分析、计划、设计、执行、评估)和敏捷测试模型(V/W/XP模型)。阐述了软件分类、测试类型(功能/性能/安全等)、测试对象(文档/程序/数据)以及测试用例编写方法。详细讲解了黑盒测试设计方法(等价类、边界值、场景法等)和白盒测试逻辑覆盖方法。最后从功能、接口、性能等维度说明了具体功能的测试方法,并简要介绍了测试工具和自动化测试框架要素。

2026-01-05 21:27:48 533

原创 python基础

Python是一种解释型、动态类型、强类型的面向对象语言,具有丰富的标准库和第三方库,可轻松调用C/C++代码。其变量类型包括数字、字符串、列表、元组和字典,可通过type()函数查看类型。数字转换使用int()、str()、eval()等函数,数学运算通过math模块实现,随机数生成使用random模块。字符串处理支持分割、替换、正则匹配等操作。列表和元组支持增删改查及排序,字典采用哈希表实现高效查找。日期时间处理通过time和datetime模块完成,支持格式化、转换和计算。Python语法简洁,功能强

2026-01-01 10:28:29 292

原创 Linux常用命令

本文总结了Linux常用命令,涵盖文件管理、系统监控、网络配置等核心操作。主要内容包括:文件和目录操作(cd、ll、mkdir/rmdir);文件权限管理(chmod);文件查看命令(cat、more、less、tail);进程管理(ps、kill);系统监控(top、df);网络配置(ip addr、ifconfig);端口查看(lsof、netstat);压缩解压(tar);以及定时任务管理(crontab)。这些命令为Linux系统日常管理和维护提供了基础工具集,适合快速查询和参考使用。

2025-12-10 22:20:22 273

原创 http响应码及含义

一般的请款下浏览器的默认都是1.x 的版本的, 如果出现了HTTP 1.1版本的,那么你需要在Internet 选项的高级下进行设置的。换而言之,就是请求的资源暂时驻留在不同的URI下。403 Fobidden 服务器可以处理请求、发送的认证凭证也鉴权通过了,但是认证发现请求的凭证不具备访问的权限。400 Bad Request 请求的格式、语法或内容不符合服务器的预期(请求头、请求体不对)。502 Bad Gateway 错误的网关 网关访问服务器这个环节,服务器返回给网关的响应无效。

2025-12-10 14:00:06 335

原创 soapUI设置挡板,在mockaction中编写脚本实现根据请求参数的不同来返回不同的响应

该文档描述了一个基于Groovy脚本的mock服务实现方案。通过解析请求体中的requestType参数,动态返回对应的response模板:Find请求返回responseFind内容,Update请求返回带时间参数的responseUpdate(${time}变量通过脚本自动赋值为当前时间戳)。脚本采用JSON解析和日期格式化处理,确保不同请求类型能返回预设响应,验证结果显示功能实现正确,参数传递正常。整个流程包含请求解析、逻辑判断和动态响应生成三个关键环节。

2025-10-08 13:30:35 265

原创 使用python+flask设置挡板

在测试过程中,可能会需要使用挡板来模拟外部系统接口。比如涉及到外部系统接口调用时,可能会需要特定的返回,比如某个字段为指定值。或者在压测过程中,为了更准确的了解系统的性能,需要模拟外部系统的接口返回。response = {"status": 0, "message": "Success", "userid": userid, "relname": "真实姓名"}response = {"status": -1, "message": "没有您要查询的信息", }# 根据请求参数的不同,返回不同的响应。

2025-09-26 17:08:18 741

原创 请求soapui设置挡板的挡板报错413

在soapui安装路径下的 .vmoptions文件中添加下面一行配置。之后重启soapui,再启动挡板。soupui设置的挡板,访问报错:413 FULL head。

2025-09-16 13:11:14 138

原创 jmeter连接oracle数据库报错:ORA-01005: null password given; logon denied

摘要:使用JMeter连接Oracle 19c数据库时出现"ORA-01005: null password given"错误。环境配置为JDK 1.8.0_151和ojdbc8.jar驱动。解决方法是将驱动替换为ojdbc6.jar后成功连接。值得注意的是,该问题仅出现在云桌面环境,本地Windows10使用ojdbc8.jar可正常连接。建议遇到相同问题时尝试更换驱动版本。

2025-01-02 16:21:07 553 1

原创 使用模板匹配识别滑动验证码的滑块缺口

前提:滑动验证码是如下的验证码,滑块缺口是完全灰色的缺口。如果滑块缺口还是原图,只是透明度有所下降的场景,不太适用。读取了提前保存好的背景图片,模板图片,进行模板匹配,并画出最终的匹配结果。由于需要滑动的图片距离背景图片左侧10px,所以滑动距离为min_loc[0] - 10。得到缺口的位置,就能计算需要滑动的距离。最终将滑动验证码进行验证封装起来,min_loc[0]截图,将上图中灰色缺口单独保存成图片 作为模板图片。换一张图片,使用相同方法和模板图片,匹配打印结果如下。为缺口在背景图片中的水平位置。

2024-12-11 09:19:06 505

原创 allure测试报告相关简记

修改alllure测试报告的标题、图标,需要先执行pytest的所有用例,生成pytest执行结果后,调用set_environment。生成allure测试报告之后,再调用update_title。

2024-11-15 19:09:35 420

原创 selenium元素定位校验以及遇到的元素操作问题记录

selenium元素定位表达式的校验几个元素定位或点击报错的问题结局方法记录

2024-11-15 17:16:27 1358

原创 pytest在conftest.py中实现用例执行失败进行截图并附到allure测试报告

conftest.py文件用于定义共享设置、夹具和钩子函数。可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture;conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件;不需要import导入conftest.py,pytest用例会自动识别该文件,放到项目的根目录下就可以全局目录调用了。如果放到某个package下,那就在package内有效。

2024-11-15 16:50:17 965

原创 琐碎笔记——pytest实现前置、后置、参数化、跳过用例执行以及重试

pytest实现前置、后置、参数化、跳过用例执行以及重试。

2024-11-15 13:28:26 1839

原创 根据当前浏览器版本,下载或更新驱动文件为对应的版本

通过ChromeDriverManager().install()下载会报错:requests.exceptions.ConnectionError: Could not reach host. Are you offline?换了一个下载网址和方式,通过windowsAPI获取安装的浏览器的版本,通过上面的地址获取浏览器驱动版本列表信息,找到与浏览器大版本号相同的最新版本的驱动版本,拼接成最终的下载地址,然后进行下载操作。

2024-11-15 11:40:49 1442

原创 Jmeter生成JWT token

JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑而自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。此信息可以验证和信任,因为它经过了数字签名。JWT可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。JSON Web令牌由三个部分组成,即:Header、Payload、Signature,这三者由两个点(.)分隔开。通常JWT展示为:Header.Payload.Signature。Header。

2024-10-02 20:54:14 2706

原创 使用SoapUI设置挡板

右击 挡板设置,点击 Add new mock action,选择请求方式,填写路径后,点击 OK。打开postman 调用挡板接口,查看返回接口,返回与response 1填写的内容一致。编辑挡板的返回内容,选择返回状态码、增加响应头、选择响应体的类型、填写预期的响应数据。再次请求挡板,返回时间为60秒后。编辑response 1 ,点击 script,代码录入。填写Paht、Port、Host信息,点击OK。打开SoapUI,点击Empty,新建一个项目。点击运行按钮即可让挡板成功运行。

2024-09-18 10:46:59 434

原创 Postman 取上一个接口返回中的结果字段作为下一个接口的入参

接口2把变量作为入参,可以取套件变量、环境1的变量或者全局变量。这里以套件的变量为例,使用 {{变量名}} 的形式引用变量,调用接口2,成功返回数据。在接口1的Tests模块设置变量,可以设置全局变量、套件的变量和环境变量。这里取接口1中的userCode字段作为接口2的入参。将上接口的返回取出,并且将指定字段值赋值给一个变量v1,在下一个接口中带入{{v1}}的值。以接口1、接口2为例,接口1和接口2在同一个套件hhhh下,当前所选的环境是环境1。调用成功后,可以看到各个变量的值已经存在,并且有值。

2024-09-18 10:13:36 1519

原创 redis常见类型设置、获取键值的基础命令

本文介绍了Redis常见数据类型的基础操作命令。主要包括:1)使用TYPE命令获取键值的数据类型;2)string类型的set/get/del命令;3)list类型的lpush/rpush/lrange/rpop命令;4)set类型的sadd/srem/smembers命令;5)zset类型的zadd/zscore/zrem/zrange命令;6)hash类型的hset/hget/hdel/hgetall命令。每种数据类型都配有示例图片说明,涵盖了键值设置、获取、删除等基本操作,适合Redis初学者快速掌握

2024-09-18 10:01:41 852

原创 随机生成车架号、统一社会信用代码和组织机构代码

本文介绍了统一社会信用代码和身份证号的生成规则及实现代码。统一社会信用代码由18位组成,包含登记管理部门代码、机构类别代码、行政区划码、组织机构代码和校验码。文中提供了Python代码实现随机生成统一社会信用代码,包括组织机构代码生成和校验位计算。同时介绍了车架号(VIN)的生成规则,排除了字母O、I、Q,并包含校验位计算。最后给出了身份证号的生成方法,可指定行政区划和出生日期,支持随机生成和校验位计算。这些代码适用于需要批量生成测试数据的场景。

2024-09-10 08:49:09 4145

原创 python连接kafka生产者发送消息

通过pip install kafka-python安装第三方工具。再导入相应的方法,可以连接kafka进行消息发送和读取。

2024-07-11 17:44:41 1866

原创 logging二次封装

【代码】logging二次封装。

2024-06-02 21:01:00 336 1

原创 pytest识别测试用例的机制以及和unittest的区别

- 文件 以test_开头或以_test结尾的python文件,即test_*.py或*_test.py - 类,在第一点识别到的文件中的类,且满足一下任一条件: 1)以Test_开头,且没有__init__()初始化函数的类,可以没有父类 2)继承自unittest.TeatCase的类,需要以test_或Test_开头 - 函数 1)第一点的文件中独立的以test_开头的函数,不在任何类中 2)识别到类中的以test_开头的函数

2024-05-29 21:12:59 680

原创 sql优化笔记

nest loop join,两表都能在关联字段走上所以时,驱动表选错,选成大表驱动小表。(小表:通过其他条件过滤后,查询结果更少的表。如果没有其他条件,只是两表关联,那小表就是数据量较小的表)3、对于nest loop join,数据量都很大,关联字段又用不上索引的情况,可以考虑使用临时表存放被驱动表的数据,并且在关联字段上建一个索引;2、改写sql,使用hint绑定执行计划,让查询走上索引或者指定驱动表;高版本也可以考虑优化成hash join的方式,减少判断的次数。1、根据查询条件,增加索引;

2024-05-19 21:26:39 203

原创 navicat连接oracle执行存储过程时关闭navicat,看存储过程是否会继续执行

确认600秒后,再次打开navicat客户端,对同步表进行查询,查看是否成功插入数据。打开另一个窗口执行存储过程,然后直接关闭整个navicat客户端。测试navicat关闭后,调用的存储过程是否会继续执行。结束navicat进程。查询表数据,结果是1。

2024-05-13 12:08:33 800

原创 算法笔记记录

本文包含两部分内容:01背包问题和快速排序算法。 01背包问题:给定N件物品(每件有重量和权重)和承重W的背包,要求放入物品总价值最大(价值=重量×权重)。通过动态规划,用二维数组dp[i][j]表示前i件物品在容量j时的最大价值,比较放入和不放入两种情况,取价值较大者。示例代码实现了该解法,得出容量7时的最大价值为27。 快速排序:通过选取基准值将数组分为左右两部分(左小右大),递归处理子数组直至完全有序。算法使用双指针从两端向中间扫描,交换元素使基准值归位。代码演示了该排序过程,最终输出有序数组。

2024-05-11 12:40:36 199

原创 bat文件中 if结构右括号前一句用了::注释语句,执行报错“此时不应有 )。”

if结构右括号前一句用了::注释语句,执行报错“此时不应有 )。

2024-04-13 10:25:47 1782

原创 数据库学习笔记——索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引是为了加快查询速度、提高查询效率而存在的。

2024-03-24 21:31:10 572

原创 windows下安装mysql5.7.44

最后一行生成一个临时的root@localhost的登陆密码。需要保证data目录为空,如果data目录不为空,会报错。进入mysql开源下载官网(https://dev.mysql.com/downloads/mysql/)将上一步下载的zip安装包解压到安装目录,并在解压得到的第一个目录下新建my.ini文件。选择符合操作系统对应位数的安装包,点击【Download】按钮即可进行下载。如果跳过安全检查,则不会生成临时密码,不用输入密码,直接回车就可以登录。密码为初始化时的临时密码,这里是:eH,M=?

2024-03-24 16:04:45 4695 2

原创 unittest框架+HTMLTestRunner生成报告教程

unittest测试框架学习python官网unittest框架的介绍。HTMLTestRunner的安装和使用。

2024-01-14 19:59:39 621

原创 每天定时对几张表进行备份的方法

记录一下每天定时对几张表进行备份的方法编写存储过程,使用navicat的自动运行设置自动任务。本来打算用存储过程+JOB来定时调用,结果没有执行JOB任务的权限。所以用了这个方法。

2024-01-09 20:31:43 870

原创 自动化测试模型

把线性测试中不同脚本的重复内容提取出来,封装成公共模块,脚本调用封装好的方法。例如,每个脚本中都有登录这一过程,就可以将登录单独封装,每隔脚本需要执行登录时,就调用哦个一下登录这个类的方法。这样一来,修改登录相关的操作时,只需要对封装的模块做改动,降低了维护成本。关键字驱动的自动化测试框在受界面影响方面,较数据驱动和线性测试有明显的优势,可根据界面的变化更新对应的关键字对象,而不用重新录制脚本。关键字驱动测试是数据驱动测试的一种改进,将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑。

2023-12-24 17:56:19 495

原创 linux命令行双击才能输入单引号的问题解决

安装了centos6,进入终端命令行,只有双击键盘才能输入单引号。内容修改成如下内容,退出保存即可解决。可以通过修改键盘布局来解决。

2023-11-26 16:35:48 605

原创 jmeter学习 查询接口自动化测试

jmeter查询接口自动化测试假设上面要调用的接口,数据来源为我本地数据库的mobilearea表。添加后置BeanShell处理器,取出查询的预期结果,与接口调用的实际结果进行比较。第二步,随机设置入参(在查询取样器后添加后置BeanShell处理器)后置BeanShell取出接口调用的结果。此处的mobile即为上一步赋值的变量。第三步,调用接口,并去除接口返回结果。第一步,从数据库查询数据。第四步,查询预期结果。

2023-11-18 20:42:09 207

原创 selenium学习 显示等待和隐式等待

WebDriver 提供的 implicitly_wait()方法可用来实现隐式等待,implicitly_wait()的参数是时间,单位为秒。这里的时间并不会影响程序执行的速度,当脚本执行到某个元素定位时,如果元素存在,则继续执行;如果在设置的等待时间里仍然定位不到指定元素,则会抛出异常。在设置时间内,每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间仍检测不到指定元素,则抛出异常。timeout:指定的超时时间,单位为秒,若超过该时间找不到指定元素则抛出报错。driver:浏览器驱动。

2023-11-12 18:26:51 311

原创 二次封装selenium功能

本文介绍了Selenium WebDriver的使用方法,重点说明了新版初始化方式的改进(采用ChromeService替代旧版executable_path方式)。文章提供了基于Python的Selenium二次封装类BasePage,包含浏览器初始化(支持Chrome/Edge)、页面操作(打开/刷新/关闭)、元素定位(支持显式等待)等核心功能。还封装了键盘操作(文本输入、回车键)、鼠标操作(点击、移动)等交互方法,通过WebDriverWait实现元素等待机制,并处理超时异常。代码示例展示了如何通过配

2023-11-05 17:43:49 797 1

原创 Jmeter学习笔记 查询数据库并使用BeanShell将查询结果设置为请求入参

查询数据库并使用BeanShell将查询结果设置为请求入参

2023-10-29 17:25:54 486

原创 python + selenium 自动下载浏览器驱动文件

python + selenium 自动下载浏览器驱动文件

2023-10-22 20:01:48 1467 1

win7版本的谷歌浏览器和驱动,浏览器版本:版本 109.0.5414.120(正式版本) (64 位)

win7版本的谷歌浏览器和驱动,浏览器版本:版本 109.0.5414.120(正式版本) (64 位) 目前电脑的操作系统是win7,想在win7上使用python + selenium进行web自动化测试框架学习,发现谷歌浏览器支持win7的版本都比较低,驱动也比较难找。 下载的文件解压后,直接运行chromsetup.exe安装对应版本的浏览器,然后把chromedriver.exe放到想要的位置既可。

2024-05-26

空空如也

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

TA关注的人

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