自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【一、测试基础】测试技术体系概述

软件测试分类有很多种,我们平时见到的 点点点、还有一直挂在嘴边的自动化测试、性能测试等等 种类繁多,应用场景广泛。那今天来聊一聊具体的测试种类应该如何细分。

2024-01-03 08:00:00 889 1

原创 【一、测试基础】四种常见的测试模型

测试的基本模型是指对系统的核心功能进行验证的过程。这一阶段通常在系统开发的早期进行,旨在检测和修复可能存在的问题,以确保系统的基本功能得到正确实现。接下来我们介绍几种常见的测试模型,帮你找到更适合自己测试模型。

2024-01-02 08:15:00 3920

原创 【一、测试基础】测试概念与测试流程模型

软件测试的基本概念主要包括但不限于以下内容软件测试:发现并推动修复软件当中存在的缺陷,也可以说是对软件系统进行验证和验证的过程软件测试目的:发现缺陷,验证功能,确保质量,降低风险,提供信心。缺陷/错误:缺陷是在软件中发现的问题或错误测试策略:测试策略是定义测试范围、测试级别、测试类型和测试方法的计划。它指导测试在整个测试过程中的活动,并确保测试的全面性和有效性。静态测试和动态测试:静态测试是在不执行软件的情况下对其进行检查。动态则是在运行软件时执行测试用例观察其行为是否符合预期白盒测试和黑盒测试。

2024-01-01 16:27:05 1207

原创 【面试必备】乐观锁VS悲观锁,你真的了解吗

乐观锁和悲观锁是在并发编程中用于解决数据竞争的两种不同的策略。乐观锁假设在大多数情况下,读操作比写操作更频繁,因此不会直接使用锁来保护共享资源。相反,它使用版本号或时间戳等机制来检测是否有其他线程修改了数据。如果检测到了冲突,乐观锁会回滚事务或者重新尝试操作。悲观锁则假设写操作比读操作更频繁,因此会直接使用锁来保护共享资源,以防止其他线程同时修改数据。

2023-03-27 13:15:00 2283 1

原创 从原理到实战,CAS算法助你轻松“搞定”多线程编程

CAS,即 Compare And Swap(比较与交换),是一种无锁算法,基于硬件原语实现,能够在不使用锁的情况下实现多线程之间的变量同步。jdk中的java.util.concurrent.atomic包中的原子类就是通过CAS来实现了乐观锁。● CAS虽然说是一种乐观锁,在JUC下面有很多类是保证原子性的,从而解决并发问题。主要的使用类有:Lock,AtomicInteger等等。

2023-03-23 08:24:17 460

原创 超详细的Mysql安装教程

mysql的安装方式有很多种,基本上都是通过下载安装包后安装,通常一个安装包要下载好久,还要去配置系统配置。但是,随着微服务的广泛使用,mysql也可以使用docker进行安装啦,下面就看看mysql是怎么使用docker安装的。微服务的应用现在到处都是,并且企业中使用它门进行开发的情况也越来越多,越来越广泛被使用,所以我们还是要不断的进行微服务的内容及容器的知识学习。。

2022-10-17 22:59:04 2181

原创 Spring Boot java.sql.SQLSyntaxErrorException: Table ‘mydb.table_name‘ doesn‘t exist

Spring Boot java.sql.SQLSyntaxErrorException: Table 'mydb.table_name' doesn't exist

2022-08-23 18:16:30 1641

原创 【深入浅出指南:JVM知多少】一、JVM内存模型

围城有一句话,叫做“婚姻是一座围城,城外的人想进去,城里的人想出来”,其实语言的内存分配和回收也是一样的,java和C/C++中间就隔着这一堵墙。C/C++的程序开发者掌握着对象的分配和生死大权,既维护着每一个对象的生存,又掌控着对象的回收,肩负着每一个对象生命从开始到终结的维护责任。JVM的模型共计分为几个部分:程序计数器、虚拟机栈、堆、常量池、直接内存、方法区、元空间。.........

2022-08-08 10:15:00 217

原创 You can‘t specify target table for update in FROM clause

“Youcan’tspecifytargettable‘xxxxx’forupdateinFROMclause,不能在同一语句中update,select同一张表。

2022-07-27 10:06:51 322

原创 “Cannot resolve net.sf.json-lib:json-lib:2.4”……依赖库找不到

在做一个使用maven编写的json数据分析类项目的时候,需要用到json-lib-2.4-jdk15.jar这个包在maven中搜索这个包https://mvnrepository.com/artifact/net.sf.json-lib/json-lib,第一个就是我们需要的直接拷贝下面这段添加到我们的在pom.xml中就好:然后执行就报错了“Cannot resolve net.sf.json-lib:json-lib:2.4”……???依赖库找不到本来懒癌患者晚期的想法,是想着直接googl

2022-07-10 15:29:57 1684

原创 【性能测试卷一】性能测试全网最全-基础入门篇

1.响应时间:响应时间是指用户从客户端发送请求到所有的请求都从服务器返回客户所经历的时间。该定义强调所有数据都返回客户端所花费的时间,为什么说是所有数据呢?因为用户体验的响应时间带有主观性,用户可能会认为从提交请求到服务器开始返回数据到客户端的这段时间为响应时间。以一个Web 应用的页面响应 时间为例,如图所示。从图中可以看到,页面响应时间=网络传输时间+应用延迟时间。其中网络传输时间为(N1+N2+N3+N4),应用延迟时间为(A1+A2+A3),而应用延迟时间又可分解为数据库延迟时间(A2)和Web

2022-06-15 09:52:35 770 1

原创 面试被问离职原因,别乱说

当面试官问到“你为什么从上家公司离职”或者是“为什么想要离职”,目的基本一致,基本上就是想要知道你对于上面三个问题的回答。也就是说,面试官期待的是,你的回答,能够“隐晦而又明确的”回到,我能干,我爱干,我很好共事且我能跟你门很好的共事这三种信息。面试是一场双方的博弈,没有必要刻意的奉承,拍的不好,还会拍到马蹄子上,明眼人一眼就能看出来你不是真心。面试前多多准备,俗话说的好,知己知彼,才能打胜仗。面试的时候多想想对方想要知道什么,自己说什么才能恰当且显着真诚,方位上上之策。你学到的越多,不懂的越多,我是

2022-06-05 22:29:56 298

原创 绝绝子!编程小白完全用AI「cursor+claude4」做了一个恋爱预测网站!直接爆了!

今天我们要做网站,你完全不用懂编程,就算是一个小白,只要你会讲话就能写出来,只要你能够把你的逻辑表达清楚就行!当你只是知道,你想做一个网站,却不知道如何做,网站的架构体系是什么样的,那么要学会和AI进行需求讨论。当然,我们目前是以一个小白的状态来写,那么我们默认什么都不懂,只要按照他说的去做就行了。你好,我是山茶,外企独角兽程序员,正在和 1000+ 朋友一起探索AI和副业中。AI时代,编程就是看谁更拥有清晰的逻辑思维,以及优秀的表达能力!中已经有做过说明,不再赘述,不知道的同学可以再去看看。

2025-06-20 10:53:47 213

原创 DeepSeek告诉我斗地主的前端性能测试需求解析,应该从这几个方面入手,分析该这么做!

好啊!我是山茶,最近在玩转DeepSeek,做测试的也要与时俱进,所以我用DeepSeek来了解了一下前端性能测试该怎么做。下面是DeepSeek告诉我的,你可以参考一下也!

2025-05-24 10:56:23 233

原创 【四、性能测试】Linux stress 压力模拟测试工具

山茶,一个做了 6 年性能测试,并坚持探索测试之路的测试开发工程师。曾混迹于互联网大厂、IOTA行业领航企业、安全行业、大数据行业领航企业,欢迎和我一起沟通交流。

2024-05-23 22:40:42 1327

原创 【四、性能测试】性能测试指标-资源指标

山茶,一个做了 6 年性能测试,并坚持探索测试之路的测试开发工程师。曾混迹于互联网大厂、IOTA行业领航企业、安全行业、大数据行业领航企业,欢迎和我一起沟通交流。

2024-05-21 20:34:04 571

原创 【四、性能测试】性能测试指标-业务指标

你好,我是山茶,一个95后在职程序员。也是一个目标跟 1000+ 程序员探索出 AI + 测试 + 副业之路的 bro,欢迎跟我一起沟通交流!性能测试的基础是在确保功能实现的前提下,通过合适的性能测试加压方式给系统加压测试并在此过程中收集服务端的各项性能表现,以及服务的资源使用情况,来确定系统是否存在问题以及潜在风险。

2024-05-21 13:22:11 714

原创 【四、性能测试】性能测试基础与几个重要的概念

资源利用率表现当前服务器资源使用的情况,它是分析服务器出现瓶颈和对服务器进行调优的主要依据,在配置调优测试的过程中,通过比较配置调优前后系统资源的使用率来判断调优的效果。从过去的工作中我所理解的性能测试,是对当前系统进行系统化的全链路方式、单服务方式,模拟用户使用场景,施加压力下,系统的响应情况是否良好、是否会出现无压力情况下未出现的问题,从而避免上线以后出现不可控的性能问题。但在实际测试过程中,测试前吞吐量是不知道的,必须通过不断添加虚拟用户来不断地测试,才能找到吞吐量的拐点,即服务器实际吞吐量的值。

2024-05-08 21:58:03 1116

原创 【五、接口自动化测试】多环境下的接口测试

实现在多环境下进行接口测试,同样的测试用例,我们可以选择更加简洁方便的方法来实现,使用配置文件能够解决很多代码修改问题。

2024-03-20 08:15:00 971 1

原创 【五、接口自动化测试】GET/POST 请求区别

大家好,我是山茶,一个探索AI + 测试的程序员在网上看到了许多关于post与get之间区别的帖子,也有很多帖子是直接粘贴复制的,甚至连标题、符号都没改,甚至还有很多争议。

2024-03-14 08:15:00 871

原创 【五、接口自动化测试】5分钟掌握python + requests接口测试

在做接口测试时,在python中内置了HTTP库 urllib,可以用于发送http请求。基于urllib二次封装的三方库Requests,相较于urllib更佳简介易用。所以,在接口自动化测试中通常使用Requests库对接口进行测试。

2024-03-13 08:15:00 642

原创 【三、接口协议与抓包】使用ApiPost进行接口测试

对应接口的具体信息:Headers 的HTTP头信息、Preview 资源类型(JSON、图片、文本)显示相应的预览、Response 显示Response信息、Cookies 显示资源HTTP的Request和Response过程中的Cookies信息。接口调用执行模块化:包含预览、设计、调试、一件压测、接口用例、Mock 等(重点关注“调试”、“设计”即可,其他花里胡哨的暂不关注)这里以 GET 接口为例。后端开发工程师,通过 ApiPost 编写、测试接口的同时,可以快速的、自动生成接口文档。

2024-03-12 08:15:00 1508

原创 【三、接口协议与抓包】使用TcpDump + WireShark抓包分析三次握手与四次挥手

它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。在测试开发工作中较为推荐使用:Charles[适用于全平台,使用广泛]、安全测试:burpsuite[java全平台]首行标题中包含几个字段,分别为"时间"、"源ip"、"目标ip"、"协议类型"、"数据大小"、"数据内容"

2024-03-01 08:15:00 848

原创 【三、接口协议与抓包】TCP的三次握手与四次挥手

因为一个服务端是供应与多个客户端工作,服务端无法保证当一个客户端在发送请求完成后,立马发送对应的数据给对方,需要再进行二次数据确认,以保证数据及链路的完整性,所以挥手通常为四次,服务端断开回应不能和断开连接请求一次发送。server端向client端回发确认信息请求ACK = 1 及对应数据信息seq,客户端接收到信息后,进入等待状态,断开了由客户端发送服务端的数据通道。因为服务端在第一次客户端发送建连请求,回发确认连接请求时,会将服务端建立连接请求同ACK = 1确认一同发送,如下图所示。

2024-02-29 08:15:00 1699

原创 【四、性能测试】性能测试分类都有哪些

对于性能测试的类型及划分,业界有很多标准,然而每个类型都有不同版本的解释,且都有一些差别从狭义来看,性能测试主要用于描述常规的性能测试,指通过模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产性能的要求。从广义来看,性能测试是压力测试、负载测试、强度测试、容量测试、大数据量测试、基准测试等和性能相关的测试的统称性能测试的种类繁多,但实际执行时确实容易将多种混合操作,所以,我们仅理解对应的测试是什么即可性能测试类型主要有以下几种,记住概念即可,在实际应用场景中,可以根据具体情况组合使用压力测试压

2024-02-28 08:15:00 815

原创 从小镇出题家到做题家

所以,用一句话总结就是“坚持写作,输出倒逼输入,持续成长,提升认知,向上链接,做一个能自我引导的终身学习者”2020年,在豆瓣某小组中,这个名词是指部分来自小城镇的985、211甚至清北名校的学子,在大城市的工作与生活中碰壁,因此自视为“没见过多少世面的‘死读书人’”,代表的是一种自嘲精神。从出题家到做题家,在无任何资源的时候,只有善用“普鲁士工具”,不断的迭代和壮大自己,实现自我的突破。公众号【程序员山茶】在我们成长的过程中,我们祖辈、老师、社会教给我们的道理、灌输的经验教训无一不是,设定在一定框框内。

2024-02-24 17:25:01 216

原创 【三、接口协议与抓包】TCP/UDP协议的基本实现

程序员山茶,一个工作5年,并坚持探索测试之路的测试开发工程师。TCP/IP协议簇包括应用层,传输层,网络层,网络访问层等多层,OSI网络模型及TCP/IP模型见“网络模型”TCP协议与TCP/IP协议之间的关系,TCP与UDP包含在TCP/IP中,TCP/IP是协议簇名称。TCP(传输控制协议)和 UDP(用户数据报协议)是 TCP/IP 协议簇中,两个互不相同的传输协议。可靠传输协议,基于连接通过在发送和接收方之间建立可靠的通信通道来确保数据的准确传递。我是山茶,一个持续探索AI+测试的程序员。

2024-02-24 17:20:22 373

原创 【三、接口协议与抓包】OSI 模型与 TCP/IP 模型

物理层和数据链路层没有定义任何特定协议,支持所有的标准和专用的协议。网络层定义了网络互联也就是IP协议,主要包括IP、ARP、RARP、ICMP、IGMP。传输层定义了TCP和UDP(User Datagram Protocol)应用层定义了HTTP(超文本传输协议)、FTP(文件传输协议)、DNS(域名系统)等协议。以上就是今天的内容,简单了解下两种模型,后续将详细拆解不同协议的使用场景和使用范围,以及他们的作用。

2024-02-23 08:15:00 904

原创 【三、接口协议与抓包】接口测试的价值与作用

用户通过前端(即展示可操作页面),点击相关按钮等,输入数据,通过外部接口,将指令及数据传输到后端,网关拆解后通过组件间的内部接口分发到各个服务,服务做出响应通过所有接口返回数据。接口测试,是对组件之间、服务端与前端之间交互,验证数据交换传递和管理及数据输出的准确性,功能的是否符合标准,性能是否达标等。了解接口详情,包括但不限于接口路径、接口类型、接口依赖、接口参数、接口返回、接口内容逻辑等。接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值。

2024-02-22 08:30:00 1804

原创 3 分钟入门python数据驱动

数据驱动是一种自动化测试的方法,通过改变输入数据驱动测试执行,并最终引起测试结果的改变简单来说,数据驱动是将测试数据和测试逻辑解耦,通过不同数据组合执行相同测试逻辑,从而增加测试的覆盖范围和灵活性数据驱动在处理测试数据时,根据数据量大小采用不同的策略对于数据量较小的测试用例,可以使用代码的参数化来实现数据驱动,直接在测试代码中定义和使用变量或参数来存储测试数据对于数据量较大的情况,建议使用结构化的文件(如yaml、json等)来存储测试数据。

2024-01-30 08:15:00 546

原创 【二、自动化测试】Pytest 结合 Allure 定制生成测试报告

生成且输出一份测试报告是测试成果最直观的表达方式,测试报告能够提供很多信息"测试缺陷集中"、"测试工作体现"、"项目整体问题遗留以及解决情况"、"测试执行人员的执行情况以及场景的覆盖程度"等内容。

2024-01-29 08:15:00 940

原创 【二、自动化测试】5 分钟快速上手 pytest 测试框架

Pytest 是 Python 的一种易用、高效和灵活的单元测试框架,非python自带,属于第三方插件,支持单元测试和功能测试简单易用,快速上手支持单元测试和复杂功能测试,同时可以能够支持selenium/appnium等自动化测试、接口自动化测试(pytest+requests)社区生态良好,有大量的pytest扩展插件,且可以自定义扩展,如 pytest-allure(定制html测试报告生成)、pytest-xdist(多CPU分发)pytest拥有良好的jenkins集成能力备注。

2024-01-22 08:15:00 990

原创 【二、自动化测试】定制unittest测试报告

实现报告的生成,可以使用HTMLTestRunner作为unittest模块的扩展,它提供了生成HTML格式测试报告的功能。PS:公众号后台回复"HTMLTestRunner",下载HTMLTestRunner.py 模版。复制HTMLTestRunner.py文件到项目文件夹或Python 安装路径下的lib文件夹。单元测试完成后,我们可以生成易于使用的HTML测试报告来展示测试结果。下载HTMLTestRunner.py 模版。直接生成html测试报告。

2024-01-16 08:15:00 422

原创 【二、自动化测试】unittest的其他3种加载方式

在unittest测试框架简介中,我们已经了解了unittest框架的基本用法和测试类的创建现在,将以其中的示例为例,介绍如何生成一份测试用例报告将unittest测试框架简介代码拿过来直接使用。

2024-01-15 08:15:00 593

原创 【二、自动化测试】unittest测试框架简介

你好啊!我是程序员山茶,你也可以称我为测试开发Guide。本文首发“每个语言都包含有自己的测试框架,python中同样有很多测试框架,具体如下unittest是Python自带的单元测试框架,它提供了类和方法来编写和组织测试用例,以及各种断言方法用于验证结果是一个第三方的Python测试框架,它具有简洁的语法和丰富的功能集。支持自动发现测试文件和函数,提供了强大的断言方法,以及插件生态系统,可以扩展测试功能。

2024-01-14 17:34:04 1354

原创 【二、自动化测试】为什么要做自动化测试?哪种项目适合做自动化?

自动化测试,顾名思义是自动执行测试,代替人手工测试,提高测试效率以及测试质量换一种说法,自动化测试可以理解为测试编写一段代码去测试另外一段代码。

2024-01-13 08:57:54 1308

原创 【一、测试基础】Java基础语法

Java 的用法及注意事项有很多,今天的目标是了解Java基础语法,且能够输出"hello world"

2024-01-12 08:15:00 919

原创 【一、测试基础】python基础语法

Python的基础语法包括"变量和数据类型"、"条件语句"、"循环"、"函数"、"列表"、"字符串"、"异常处理"、"模块"、"包"、"文件编程"、"面向对象编程"等基本操作。

2024-01-11 08:15:00 502

原创 【一、测试基础】shell三剑客分析nginx日志

linux中,shell指令就像是开启房间的钥匙一样,其中有三把处理文本的特殊钥匙,在shell中可以称为三剑客,将他们组合使用能够快速高效的处理文本、日志、解析结果等同时,Shell 脚本可以包含条件语句、循环、函数等常见的编程元素,使用户能够更加高效完成重复性的操作。

2024-01-09 08:15:00 1162

原创 【一、测试基础】软件测试常用100个shell指令

在软件测试面试中,通常有这样一条要求“熟练掌握Linux系统相关技术,熟悉shell脚本”,因为在工作当中我们通常将服务部署在服务器,不论是云服务器也好,实体类型的服务器也好,大多数情况,服务器都是以linux系统为准,熟悉shell脚本,首先要对shell指令熟悉使用shell指令能够高效地进行文件操作、进程管理、网络配置等任务,且在故障排除和问题解决中起到关键作用。

2024-01-08 08:15:00 1193 1

空空如也

空空如也

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

TA关注的人

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