JavaWeb 开发基础 7 个 Web 术语解析

本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 7 个 Web 术语 Website: static vs dynamic HTTP HTTP Requests GET vs POST Servlet Container Server: Web vs Application Content Type Website: static vs dynamic 网站内容包括文本、图片、音频、视频,通过 URL 来访问。网站分为静态网站和动态网站。 静态网站 静态网站是用 HTML 编写的,所有内容都包含在网页内,就像是打印出来的一样。 动态网站 动态网站分为客户端和服务端,内容是可以动态变化的,可以根据用户请求动态更新网页内容。服务端语言有 Servlet、ASP.NET 等。 HTTP HTTP 是 Hypertext Transfer Protocol 缩写,超文本传输协议,位于 OSI 网络分层模型的应用层(第七层)。 超文本(Hypertext)是一种文本形式,它不仅包含普通的文本内容,还包含了可以链接到其他文本或资源的元素。这些链接通常称为“超链接”(Hyperlinks)。超文本的概念由 Ted Nelson 在 1960 年代提出,并在万维网(World Wide Web)的发展中得到了广泛应用。 HTTP 具有以下特点: media independent:支持任何类型的媒体内容 connectionless:无连接,客户端发送请求后,就断开了连接 stateless:无状态,服务端不会保留客户端请求的状态,不知道谁是谁 HTTP 是基于 TCP/IP 协议的,通过 TCP 建立可靠连接。为什么说 HTTP 是无连接的,但又是基于 TCP 可靠连接的?如果想要可靠地传输数据,那么就必须要有稳定可靠的连接,保证数据不丢失,这个连接就是 TCP 连接。HTTP 正是通过 TCP 连接来发送和接收数据的。 ...

RabbitMQ 消息队列官方教程 Java 学习笔记

本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 消息队列 RabbitMQ 是一个消息队列,它能够接收和转发消息。这个过程就像寄快递一样,把物件打包给快递小哥,快递小哥会负责把物件派送到正确的地址。 生产者和消费者 生产者就是用来生产消息(发送消息)的: 消费者就是用来消费消息(接收消息)的: 在生产者和消费者之间的就是消息队列: 它相当于消息缓冲区,最多能存储多少数据只受限于机器的内存和磁盘。多个生产者可以发送消息给同一个队列,多个消费者也可以从同一个队列接收消息。 Windows 安装 RabbitMQ 参考 mall 商城学习教程的 RabbitMQ 部分内容: http://www.macrozheng.com/#/architect/mall_arch_09?id=rabbitmq 原文中rabbitmq-server-3.7.14.exe下载地址失效了,改从这里下载: https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.14 安装完成后,确认服务已开启: 进入 RabbitMQ 安装目录下的 sbin 目录: 在地址栏输入 cmd 并回车启动命令行,然后输入以下命令启动管理功能: rabbitmq-plugins enable rabbitmq_management RabbitMQ 运行在本地机器上: http://localhost:15672/ 默认用户名密码为 guest / guest: Java 客户端 amqp-client-5.7.1.jar是 RabbitMQ 官方提供的 Java 客户端: https://www.rabbitmq.com/tutorials/tutorial-one-java.html 既可以直接下载 jar 包,也可以在 Maven 中添加依赖: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.14.2</version> </dependency> 生产消息 ...

SpringBoot 简介与安装

本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 SpringBoot 简介 SpringBoot 是 Java 技术栈的一个 Web 开发框架,在整个 Web 开发框架领域中,说 SpringBoot 是最成熟、最稳定、生态最强大的,一点也不为过。它最伟大的变革是让 Java 的 Web 框架也变得便捷起来,开箱即用,只需要简单配置就能快速搭建起一个后端应用,这也是它出现后迅速抢占市场,实现技术更替的重要原因。 除了 Web 应用开发外,SpringBoot 还提供了内嵌服务器(Tomcat 等)、安全、监控、健康检查等能力。 SpringBoot 安装 本文主要介绍 Maven 这种方式: 第一步,安装 Java,SpringBoot 2.5.6 版本需要 Java8 及以上版本,最新的 Java17 也兼容。 第二步,安装 Maven,不需要单独安装,下载一个 IntelliJ 就可以了,详细步骤可以参考我博客中这篇文章: 001-2021 年搭建 Java 环境最快办法 第三步,在 pom.xml 中配置 SpringBoot: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> </parent> <!-- Additional lines to be added here... --> </project> 下篇文章《开发你的第一个 SpringBoot 应用》将继续探究 SpringBoot 安装后的使用。 ...

保姆级 VSCode 入门指南,Python 党直接抄作业

今天就来介绍一款开源、免费、颜值高的“瑞士军刀”—— VS Code (Visual Studio Code)

测试人员学 Java 入门指南

本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 目标读者 本指南特别适合有 Python 基础的同学学习 Java 入门,对于没有任何编程经验的同学可能会存在困难。 为什么测试人员要学 Java 选择 Java,应该不错。TesterHome 测试论坛知名大佬基本都是以 Java 技术栈为主,少部分是 Golang 和 Python。我公司 2021 年校招的两个同济大学研究生,测试开发,也是以 Java 为主。有一个测开同事跳槽去了美团,拿了高薪,只会 Java。有一个测开同事跳槽去了创业公司做了测试架构师,只会 Java。招聘网站搜索测试开发 20K 以上职位,基本都要求会 Java。我接触到的开发,Java 程序员占 80%以上。 测试人员用 Java 能干嘛 如果你的公司是以 Java 技术栈为主,那么你可以用 Java 做所有事情,而且有些事情只能用 Java 来做。这个问题挺关键的,学习一门语言肯定是要能够学以致用。在自动化测试,Java 会显得稍微有点笨重,而 Python 会适合一点。你可以用 Python 来写接口自动化脚本,在小范围内使用,但是当团队变大以后,脚本如何规范如何维护,就成了一个很大的问题,而 Java 由于静态语言特性和面向对象编程,正好可以用来解决这个问题。在测试平台和性能测试,Java 有很成熟的 Web 开发框架和配套的生态。在测试工具开发,公司封装好的 Java 库可以拿来即用,碰到问题也可以找开发帮忙。白盒测试,基本上都是要靠 Java 来做的,看代码,用 JaCoCo 统计代码覆盖率。其他专项比如流量录制回放、全链路压测、Dubbo 接口测试,都只能使用 Java 来做。 测试人员怎么学 Java 我推荐刷完一遍基础语法后,在 LeetCode 上面刷算法题来加强练习。Java 还是有一定的学习门槛的,初学者可能学起来会有些吃力,可以先从 Python 入手,了解编程语言的底层逻辑,等对编程有些许感知以后,再学习 Java。基础语法可以快速浏览一遍,一遍并不会就能记住了,需要在编码中持续加强记忆。光学语法也不行,学习 Java 和其他编程语言一样,需要多敲多练,刷算法题,既能熟悉 Java 语法,也能熟悉算法,一举两得,题做不来就先把答案背一遍再做。另外,可以在工作中主动找研发开通下代码权限,尝试 Review 开发代码,看多了,有些技巧也会知道了。有机会,可以用 Java 写点工具或者平台,实践出真知。 ...

代码变形记之模板方法模式

《代码变形记》系列文章基于真实案例,记录实际工作中的代码优化方法。

计算机历史人物之冯·诺依曼

0-5 岁就有过目不忘的记忆力,6 个月能认出客人,2 岁能用德语和母亲交流。6 岁已经能读古希腊文献,经常随口报两个 8 位数,心算除法,结果精确到小数点后几位。8 岁就自学完成微积分,阅读 44 卷本的《世界通史》。10 岁进入著名的路德中学,这所学校后来培养出多位诺贝尔奖得主。12 岁开始研究集合论和超限数,讨论无穷理论。15 岁掌握泛函分析、复变函数、测度论。17 岁发表第一篇数学论文《论某类最小多项式的零点位置》

录制脚本与元素定位

UI 自动化最麻烦的就是定位元素,好在 Playwright 支持录制脚本,可以在界面进行操作,快速获取元素定位,生成测试脚本。

如何让文科生 5 分钟写上 Python

本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 序言 这篇文章是转型后发表的第一篇文章,有必要先聊一下我的写文计划。 串行文章和并行文章 我会按照发文顺序分为串行文章和并行文章。Python 语言本身的内容,我会按照入门、进阶、原理的顺序依次展开。由于我的水平有限,为了保证质量不乱讲,我选择站在巨人的肩膀上进行二次创作。入门篇主要参考菜鸟教程的基础教程部分。进阶篇主要参考《流畅的 Python》这本书,我是买了实体书的,计划后面会送出来,虽然有些破旧,还望不要嫌弃(当时买的时候书页就坏了,京东还赔了我 1000 京豆)。原理篇主要参考官方文档以及外网资料,有一说一,国外资料确实更多更专业,只不过都是英文的,还好现在已经适应了。Django、算法、pytest、tep、测试成长小说等系列专题会并行发表,也包括其他单篇文章。这两天了解到 Python 之父 Guido van Rossum 从 Google 退休后,又加入微软继续搞 Python 了。有点意思。 有啥不一样? Python 文章和视频都非常多,我就在想我写的东西对读者而言价值到底在哪?我不是搞培训的,也不是做教程,内容会更偏向于学习笔记和实用经验。看我的文章,说不定能把以前遗漏或遗忘的知识点再次补上。同时我已经有一段时间的写作经验了,我也尽量深入浅出的把知识讲清楚讲透彻,首先写的文章我要自己都理解透,这样别人看的时候才会觉得一目了然。另外就是认真的态度,见过一些为了流量写的教程,不做评价。只是觉得既然写了,既要对得起自己,也要对得起别人。 标题 既为了提高打开率,也是为了新颖,我不会按照比如《Python 入门 1》、《Python 入门 2》这种常规的命名,这样的文章实在是太多了。而是会在写完文章后,根据文章内容,选择其中的亮点,作为标题。这个过程也挺有趣,有种点睛之笔的意味。同时我也希望随便摘一篇文章拿出去,也是够看的。 (突然想起来上学写 2000 多条错题笔记的时候,简单又充实) 开篇 为了把这个开篇写好,我专门在 B 站上面找了最火的 Python 教程,全站排行榜最高第 1 名的《花了 2 万多买的 Python 教程全套》,质量很高,也推荐大家看看。不过我不搞培训,也不需要宣扬 Python 的好处促进就业,就不写那么多背景介绍了。身边学财会的朋友之前让我教教 Python,干脆我就以这个为契机,作为开篇,保证 5 分钟内,即便是文科生,也能用 Python 编起程序来! 电脑 Python 并不神秘,它其实就和 QQ 一样,只是一个运行在电脑上的普普通通的软件。只要有一台电脑,就可以写 Python。 安装 打开这个下载网址: https://www.python.org/downloads/ 点击 Download Python 进行下载(Mac 土豪请注意选择版本)。下载后傻瓜式一路点击下一步安装就好。 使用 一般的软件我们都是双击图标打开。Python 在安装以后桌面上不会出现图标。不过可以从开始菜单找到: 点击后就打开了: ...

刷了 80 道算法题以后

刷了 80 道算法题以后,我最大的感受是,自信心倍增。既克服了对算法的恐惧,也加强了 Java 代码能力,还收集了 2068 行答案代码。