软件测试需要具备的基础知识【功能测试】---后端知识(三)

您好,我是程序员小羊!
前言
为了更好的学习软件测试的相关技能,需要具备一定的基础知识。需要学习的基础知识包括:
1、计算机基础
2、前端知识
3、后端知识
4、软件测试理论
后期分四篇文章进行编写,这是第三篇
这一篇文章是讲解后端基础知识的一篇文章:
正文:
一、系统架构介绍
两种常见的系统架构(BS/CS):
- CS架构
- BS架构

1.1 CS架构
CS:(Client/Server)即客户端-服务器架构
优点
- 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快
- 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求
- 能够实现复杂的业务流程
- 安全性能更容易保证
缺点
- 需要专门的客户端安装程序,不方便实现快速部署安装和配置
- 兼容性差,不同的操作系统需要开发不同的程序
- 开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需 要改变
1.2 BS架构
BS:(Browser/Server)即浏览器-服务器架构,是伴随着Internet技术的兴起而发展起来的。
优点
- 分布性强,客户端零维护;只要有网络、浏览器即可实现业务处理
- 业务扩展简单方便,通过增加网页即可增加服务器功能
- 维护简单方便,只需要改变网页,即可实现所有用户的同步更新
- 开发简单,共享性强
缺点
- 个性化特点明显降低,无法实现具有个性化的功能要求
- 在跨浏览器上,存在一定的兼容性
- 客户端服务器端的交互是请求-响应模式,响应速度低
- 在速度和安全性上需要花费巨大的设计成本
- 功能弱化,难以实现传统模式下的特殊功能要求
1.3 CS与BS区别总结
效率:c/s效率高,某些内容已经安装在系统中了,b/s每次都要加载最新的数据
升级:b/s无缝升级;c/s删除老版本再安装新版本
安全:c/s更安全,需要安装、注册、登录;b/s有浏览器即可使用,安全程度低
开发成本:b/s成本低;c/s需要不同的系统要不同的开发人员,成本高
二、服务器介绍
什么是服务器?
我们通常所说的“服务器”可以从硬件和软件两个层面来理解:
硬件服务器:其实就是我们所说的电脑;任何一台电脑安装了软件并且可以对外提供服务就可以叫服务器;专业服务器需要专业的硬件和软件支持,性能高,价格也比较高
软件服务器:一个运行在硬件服务器上并为用户提供服务的计算机软件
注意:在不同的意境下,“服务器”代表着不同的含义;有时指的是硬件,有时指的是软件,有时指的是提供服务的系统
软件服务器
软件服务器也可以称为服务器软件,不同类型的服务器软件能够提供不同的服务。常见的软件服务器有:
文件服务器:是指在计算机网络环境中,所有用户都可访问的文件存储设备,是一种专供其他电脑检索文件和 存储的特殊电脑
数据库服务器:提供了对数据组织、存储和管理功能的服务器,比如Oracle、MySQL、Microsoft SQL Server 等等
邮件服务器:邮件服务器是一种用来负责电子邮件收发管理的设备
FTP服务器:是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务
Web服务器:
严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容
常见的Web服务器有Nginx,Apache,IIS等等
应用服务器:
应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序 应用服务器一般也支持HTTP协议,能够实现Web服务器的功能
应用服务器可以处理业务逻辑,实现动态生成文档 常见的应用服务器有Tomcat、Weblogic、Jboss等等
三、编程语言介绍
1. 编程语言
编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
1.1 编程语言的时代发展
编程语言经历的时代一般分为:低级语言、高级语言和面向对象时代
- 低级语言时代 时间:1946-1953 主要包括被称为“天书”的机器语言以及汇编语言
- 高级语言时代 时间:1954-至今 随着世界上第一个高级语言fortran的出现,新的编程语言开始不断涌现出来 数十年来,全世界涌现了2500种以上高级语言,一些流行至今,一些则逐渐消失 代表语言:BASIC、C语言
- 面向对象时代 时间:90年代初-至今 面向对象程序设计(Object-Oriented Programming,简称OOP)如今在整个程序设计中十分重要,其 最突出的特点为封装性、继承性和多态性 代表语言:Java、Python
1.2 Java语言
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等
概念
Java语言具有功能强大和简单易用两个特征
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
近几年来,Java企业级应用飞速发展,主要被运用于电信、金融、交通、电商等大型项目平台建设

1.3 Python语言
Python是一种跨平台的计算机程序设计语言
是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言
最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发
相对于Java语言更加简单易学
主要应用领域:大数据、人工智能、科学计算和统计、网络爬虫、软件开发等

四、常见文件格式
1.XML(以前很火的一种格式)
那什么是XML呢?

XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签
XML 被设计为具有自我描述性
XML 是 W3C的推荐标准 XML 是纯文本的,文件后缀名为:.xml
<?xml version="1.0" encoding="UTF-8" ?>
<node><db id="db" desc="三条边的长度都一样"><b1>3</b1><b2>3</b2><b3>3</b3><expect>等边三角形</expect></db><dy><b1>4</b1><b2>4</b2><b3>5</b3><expect>等腰三角形</expect></dy>
</node>
1.2 XML与HTML的主要差异
XML 不是 HTML 的替代
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML被设计用来显示数据,其焦点是数据的外观。
1.3 XML树形结构
XML文档形成了一种树形结构,它从“根部”开始,然后扩展到“枝叶”
<?xml version="1.0" encoding="UTF-8" ?>
<mail><from>张三</from><to>李四</to><subject>会议记录</subject><body>本次会议的主要内容有...</body>
</mail>
说明:XML文档中第一行是 XML 声明,它定义 XML 的版本和所使用的编码。
1.4 XML语法
XML的主要语法规则包括:
XML文档必须有根元素
- XML文档必须有一个元素是所有其他元素的父元素。该元素称为根元素
所有XML元素都须有结束标签
- 在HTML中经常会看到没有结束标签的元素,但是XML中省略结束标签是非法的
XML标签对大小写敏感
- 在XML中,标签
<Letter> 与标签 <letter>是不同的
XML必须正确地嵌套
- HTML中:
<b><i>This text is bold and italic</b></i> - XML中,所有元素都必须彼此正确地嵌套:
<b><i>This text is bold and italic</i></b>
XML的属性值须加引号
XML中的注释
在XML中编写注释的语法与HTML的语法很相似: <!-- This is a comment -->
1.5 XML案例
案例:小明是个男生,今年20岁了,毕业于清华大学,家里养的宠物有1岁的狗、2岁的猫、3岁的猪,他的幸运数
字是2、5、8。请把上面的信息用XML文档来表示。
<?xml version="1.0" encoding="UTF-8" ?>
<intro><name>小明</name><gender>男</gender><age>20</age><university>清华大学</university><pets><pet age="1">狗</pet><pet age="2">猫</pet><pet age="3">猪</pet></pets><luckyNumbers><number>2</number><number>5</number><number>8</number></luckyNumbers>
</intro>
2. JSON
JSON的全称是”JavaScript Object Notation”,是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级 数据交换格式。

2.1 JSON特点
- JSON是纯文本
- JSON具有良好的自我描述性,便于阅读和编写
- JSON具有清晰的层级结构
- 有效地提升网络传输效率

2.2JSON语法规则
- 大括号保存对象
- 中括号保存数组
- 对象数组可以相互嵌套
- 数据采用键值对表示
- 多个数据由逗号分隔
JSON键
JSON的键必须是字符串类型,用英文双引号括起来
JSON值
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中)
- null
案例:

练习:
需求:小明是个男生,今年20岁了,毕业于清华大学,家里养的宠物有1岁的狗、2岁的猫、3岁的猪,他的幸运数
字是2、5、8。请把上面的信息用JSON数据来表示。
{
"name": "小明",
"gender": "男",
"age": 20,
"university": "清华大学",
"pets": [
{
"name": "狗",
"age": 1
},
{
"name": "猫",
"age": 2
},
{
"name": "猪",
"age": 3
}
],
"luckyNumbers": [2, 5, 8]
}
扩展:
js基础语法
ctrl+? 依然是注释的快捷键
alert弹出对话框,小括号中的内容可以实现提示文字的效果,必须放在英文状态下的单、双引号中,最后的分号不推荐省略,
例:
alert(); alert(‘您的话费不足 请及时充值’);
alert(“您网费不足”);
书写位置:script标签写在html代码的最后位置,其它js程序都要写在这对标签中
事件语法
<script type="text/javascript">语法规则:
事件源.事件类型=function(){事件发生的时候要执行的命令
}//document 代表查找的范围在整个文档中// document.getElementById('bz') 事件源: 通过id的值为bz的按钮
以下这一小段代码放在浏览器的f12,找到第二个console,复制进去回车运行,查看是否可以找到对应的标签
// onclick 代表事件类型(鼠标左键点击)
// function(){ 要执行的命令 }//例:documen.getElementById('xw').onclick=function(){alert('啊 我被点了');}//getElementsByClassName('xw') 找class为xw的标签//onclick 必须都是小写才可以!!// [数字] 代表第几个,从0开始记录数字(索引值、地址下标)document.getElementsByClassName('xw')[1].onclick=function(){alert('我有class 我被点击了');}//onmouseover 鼠标移入事件
//onmouseout 鼠标移出事件</script>

今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也,希望大家能持续关注下,文章从浅入深,也欢迎大佬们的随时指导!!!

相关文章:
软件测试需要具备的基础知识【功能测试】---后端知识(三)
您好,我是程序员小羊! 前言 为了更好的学习软件测试的相关技能,需要具备一定的基础知识。需要学习的基础知识包括: 1、计算机基础 2、前端知识 3、后端知识 4、软件测试理论 后期分四篇文章进行编写,这是第三篇 …...
详解 Redis 队列 实现
Redis 是一个高性能的键值存储系统,它的多种数据结构使其能够以不同方式实现队列,包括普通队列、延时队列和异步队列的介绍和示例。 介绍 Redis 的 List 数据结构可以用来实现普通的队列。 生产者使用 LPUSH 或 RPUSH 命令将消息添加到列表的头部或尾部…...
分析SQL的count(*)并优化
最近优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。 我们使用的数据库是Mysql8,使用的存储引擎是Innodb。这次优化除了优化索引之外,更多的是在优化count(*)。 通常情况下&#…...
Java学习日记(day18)
一、软件的结构 C/S (Client - Server 客户端-服务器端) 典型应用:QQ软件 ,飞秋,印象笔记。 特点: 必须下载特定的客户端程序。服务器端升级,客户端升级。 B/S (Broswer -Server 浏览器端- 服务器端&a…...
Oracle(61)什么是外部表(External Table)?
外部表(External Table)是Oracle数据库中的一种特殊表类型,用于访问存储在外部文件系统中的数据,而不需要将数据实际加载到数据库内部。外部表的主要优势在于允许数据库用户在不移动或复制数据的情况下,直接查询和处理…...
物联网HMI/网关搭载ARM+CODESYS实现软PLC+HMI一体化
物联网HMI/网关搭载CODESYS实现软PLCHMI一体化 硬件:ARM平台,支持STM32/全志T3/RK3568/树莓派等平台 软件:CODESYS V3.5、JMobile Studio CODESYS是一款功能强大的PLC软件编程工具,它支持IEC61131-3标准IL、ST、FBD、LD、CFC、…...
Java中Stream流
Java中Stream流 Stream 使用flatMap处理嵌套集合: 有一个对象列表,每个对象又包含一个列表,可以使用flatMap来“展平”这个结构。 List<List<String>> listOfLists Arrays.asList(Arrays.asList("a", "b"),Arrays.a…...
纯css实现多行文本右下角最后一行展示全部按钮
未展开全部: 展开全部: 综上演示按钮始终保持在最下方 css代码如下: <div class"info-content"><div class"info-text" :class"!showAll ? mle-hidden : "><span class"show-all"…...
WPF篇(17)-ListBox列表控件+ListView数据列表控件
ListBox列表控件 ListBox是一个列表控件,用于显示条目类的数据,默认每行只能显示一个内容项,当然,我们可以通过修改它的数据模板,来自定义每一行(元素)的数据外观,达到显示更多数据…...
HAProxy 全解析:驾驭网络负载均衡与高可用的强大引擎
一、什么是HAproxy HAProxy是一个免费、开源的高性能TCP/HTTP负载均衡器和代理服务器软件,主要用于实现以下功能 一、负载均衡 多种负载均衡算法支持: 轮询(Round Robin):它依次将请求均匀分配到后端的各个服务器。例…...
陶瓷材质的防静电架空地板越来越受欢迎的原因
目前市面上的陶瓷防静电架空地板主要分为两种:钢基和硫酸钙基。前者是以全钢冲孔裸板作为板基,经粘接、固定整型和灌浆的方式加工而成,后者是以复合硫酸钙板为基材,表面粘接防静电陶瓷砖,四周导电PVC边条封边。近年来陶…...
Mariadb数据库本机无密码登录的问题解决
Mariadb数据库本机无密码登录的问题解决 安装了mariadb后,发现Mariadb本机无密码才能登录 百度了很多文章,发现很多人是因为root的plugin设置的值不正确导致的,unix_socket可以不需要密码,mysql_native_password 是正常的。 解…...
校园外卖平台小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,菜品信息管理,菜品分类管理,购买菜品管理,订单信息管理,系统管理 微信端账号功能包括:系统首页&a…...
Python3 第八十一课 -- urllib
目录 一. 前言 二. urllib.request 三. urllib.error 四. urllib.parse 五. urllib.robotparser 一. 前言 Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 本文主要介绍 Python3 的 urllib。 urllib 包 包含以下几个模块: url…...
Vue 3+Vite+Eectron从入门到实战系列之(五)一后台管理登录页
前面已经讲了不少基础知识,这篇开始,我们进行实操,做个后台管理系统,打包成多端的,可安装的桌面app!!其中,登录,退出的提示信息用系统的提示,不使用elemengplus的弹窗提示!ÿ…...
Docker 网络代理配置及防火墙设置指南
Docker 网络代理配置及防火墙设置指南 背景 在某些环境中,服务器无法直接访问外网,需要通过网络代理进行连接。虽然我们通常会在 /etc/environment 或 /etc/profile 等系统配置文件中直接配置代理,但 Docker 命令无法使用这些配置。例如&am…...
基于PostGIS(Postgres)+Node.js实现的xyz瓦片地图服务器
背景介绍 前两天研究GeoServer发布存储在PostGIS中栅格数据,最终目的是想在PostGIS中存储金字塔瓦片,用GeoServer发布,但是最后经过研究不改GeoServer源码的情况下,好像只支持将大图tif存在PostGIS数据库中进行发布,金…...
浙大数据结构慕课课后题(06-图3 六度空间)
题目要求: 输入格式: 输入第1行给出两个正整数,分别表示社交网络图的结点数N(1<N≤103,表示人数)、边数M(≤33N,表示社交关系数)。随后的M行对应M条边,每行给出一对正…...
Windows File Recovery卡在99%怎么解决?实用指南!
为什么会出现“Windows File Recovery卡在99%”的问题? Windows File Recovery(Windows文件恢复)是微软设计的命令行应用程序。它可以帮助用户从健康/损坏/格式化的存储设备中恢复已删除/丢失的文件。 通过输入相关命令,设置源/…...
数据结构之数组
写在前面 看下数组。 1:巴拉巴拉 数组是一种线性数据结构,使用连续的内存空间来存储数据,存储的数据要求有相同的数据类型,并且每个元素占用的内存空间相同。获取元素速度非常快,为O(1)常量时间复杂度,所…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...

