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

news2024/9/21 12:35:16

在这里插## 标题入图片描述

您好,我是程序员小羊!

前言

为了更好的学习软件测试的相关技能,需要具备一定的基础知识。需要学习的基础知识包括:
1、计算机基础
2、前端知识
3、后端知识
4、软件测试理论
后期分四篇文章进行编写,这是第三篇

这一篇文章是讲解后端基础知识的一篇文章:

正文:

一、系统架构介绍

两种常见的系统架构(BS/CS):

  • CS架构
  • BS架构

在这里插入图片描述

1.1 CS架构

CS:(Client/Server)即客户端-服务器架构

优点

  1. 能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快
  2. 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求
  3. 能够实现复杂的业务流程
  4. 安全性能更容易保证

缺点

  1. 需要专门的客户端安装程序,不方便实现快速部署安装和配置
  2. 兼容性差,不同的操作系统需要开发不同的程序
  3. 开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需 要改变

1.2 BS架构

BS:(Browser/Server)即浏览器-服务器架构,是伴随着Internet技术的兴起而发展起来的。

优点

  1. 分布性强,客户端零维护;只要有网络、浏览器即可实现业务处理
  2. 业务扩展简单方便,通过增加网页即可增加服务器功能
  3. 维护简单方便,只需要改变网页,即可实现所有用户的同步更新
  4. 开发简单,共享性强

缺点

  1. 个性化特点明显降低,无法实现具有个性化的功能要求
  2. 在跨浏览器上,存在一定的兼容性
  3. 客户端服务器端的交互是请求-响应模式,响应速度低
  4. 在速度和安全性上需要花费巨大的设计成本
  5. 功能弱化,难以实现传统模式下的特殊功能要求

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 编程语言的时代发展

编程语言经历的时代一般分为:低级语言、高级语言和面向对象时代

  1. 低级语言时代 时间:1946-1953 主要包括被称为“天书”的机器语言以及汇编语言
  2. 高级语言时代 时间:1954-至今 随着世界上第一个高级语言fortran的出现,新的编程语言开始不断涌现出来 数十年来,全世界涌现了2500种以上高级语言,一些流行至今,一些则逐渐消失 代表语言:BASIC、C语言
  3. 面向对象时代 时间: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>

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2033171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cycript安装报错 Library not loaded终极解决方案

一、下载安装 Cycript 官方完整 资源下载完成后&#xff0c;解压。目录如下&#xff1a; 二、执行 打开命令终端,cd到对应目录&#xff0c;然后执行./cycript #第一步&#xff1a;cd到解压的目录 cd /xx/cycrpt_0#执行&#xff1a; ./cycript 2.1、报错Library not Loaded …

oled使用 f4软件iic 数字 汉字 小图片 HAL库

基于江科大的oled标准库进行移植 到Hal库上 本人参考了许多大佬的源码 进行更改 由于F4和F1主频不一样 由于F4主频太高 在进行软件iic时需要延时一下 才可驱动oled 本人在网上找了一个开源的us延时函数 已经添加进入 文件分享 通过百度网盘分享的文件&#xff1a;delay&#…

如何自动抓取岗位数据?五种采集技巧

摘要&#xff1a; 本文将深入探讨如何从前程无忧网站自动抓取岗位信息&#xff0c;通过分享五大实用的采集技巧&#xff0c;助您轻松掌握大数据时代的招聘情报。无需编程基础&#xff0c;也能高效获取目标职位详情&#xff0c;优化人力资源管理与市场分析。 正文&#xff1a;…

电脑图片损坏打不开怎么办?能修复吗?

照片和视频是记录和保存现实生活中的事件的最好方式。由于手机储存空间有限&#xff0c;一般我们会把有纪念意义的照片放到电脑上进行保存&#xff0c;但有时难免会遇到照片被损坏打不开的情况&#xff0c;一旦遇到这种情况&#xff0c;先不要急&#xff0c;也不要因为照片打不…

【RISC-V设计-12】- RISC-V处理器设计K0A之验证环境

【RISC-V设计-12】- RISC-V处理器设计K0A之验证环境 文章目录 【RISC-V设计-12】- RISC-V处理器设计K0A之验证环境1.简介2.验证顶层3.顶层代码4.模型结构4.1 地址映射4.2 特殊功能寄存器 5.模型代码6.运行脚本7.总结 1.简介 在前几篇文章中&#xff0c;分别介绍了各个模块的设…

订单增长40%,磁性元件下半年还有哪些挑战?

导语 2024即将过半&#xff0c;哪些终端市场发展势头更好?海运价格上涨又会对磁性元件企业造成哪些影响? 2024年开春以来&#xff0c;比亚迪发起了新一轮价格战&#xff0c;让持续一年的新能源汽车价格战再度升级&#xff0c;也让2024年的市场走势更加扑朔迷离。 第二十二届(…

PMTiles介绍与MapboxGL中使用

概述 本文介绍PMTiles以及PMTiles在MapboxGL中的使用。 PMTiles简介 PMTiles 是一种对瓦片数据的单文件压缩格式。PMTiles 压缩包可以托管在如 S3 这样的商品级存储平台上&#xff0c;并允许创建低成本、零维护的“无服务器”地图应用程序——这些应用程序无需自定义瓦片后端…

手机误操作导致永久删除照片的恢复方法有哪些?

随着手机功能的不断增强和应用程序的不断丰富&#xff0c;人们越来越依赖手机&#xff0c;离不开手机。但有时因为我们自己的失误操作&#xff0c;导致我们手机上重要的照片素材被永久删除&#xff0c;这时我们需要怎么做&#xff0c;才能找回我们被永久删除的照片素材呢&#…

LeetCode.676.实现一个魔法字典

题目描述&#xff1a; 设计一个使用单词列表进行初始化的数据结构&#xff0c;单词列表中的单词 互不相同 。 如果给出一个单词&#xff0c;请判定能否只将这个单词中一个字母换成另一个字母&#xff0c;使得所形成的新单词存在于你构建的字典中。 实现 MagicDictionary 类&a…

前端工程化项目 用npm拉git项目的时候是在是太慢了怎么办

最近在家拉git项目发现npm i之后,开始下得挺快&#xff0c;过会就卡着不动了&#xff0c;大概几分钟后才下好。这对一个有强迫症的码农来说是不能容忍的。 只能退出去 重新下载 其实我们只要换一下国内的下载镜像源就好了 npm config set registry https://registry.npmmirror…

[C++][opencv]基于opencv实现photoshop算法灰度化图像

测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 BlackWhite.hpp #ifndef OPENCV2_PS_BLACKWHITE_HPP_ #define OPENCV2_PS_BLACKWHITE_HPP_#include "opencv2/core.hpp"namespace cv {class BlackWhite { public:float red; //红色的灰度系…

vs code编辑区域右键菜单突然变短

今天打开vs code发现鼠标在编辑区域按右键&#xff0c;出来的菜单只显示一小段 显示不全&#xff0c;而之前的样子是 显示很多项&#xff0c;怎么设置回到显示很多项呢&#xff1f;

自动驾驶TPM技术杂谈 ———— 可行驶区域

文章目录 介绍基于传统计算机视觉的方法基于直接特征的可行驶区域检测基于颜色的可行驶区域检测基于纹理的可行驶区域检测基于边缘的可行驶区域检测 基于间接特征的可行驶区域检测 基于深度学习的方法语义分割基于FCN的可行驶区域分割 介绍 可行驶区域检测主要是为了自动驾驶提…

数据科学的定义,如果做数据科学,非计算机的你,一般来说最好还是选择R语言,图像挖掘除外

一、数据科学&#xff08;Data Science&#xff09; 数据科学的起源可以追溯到1962年&#xff0c;当时统计学家John W. Tukey在他的文章《数据分析的未来》中首次提出了数据分析作为一门独立的科学方法。1974年&#xff0c;计算机学家Peter Naur在《计算机方法的简明调研》中明…

shell外壳与Linux权限

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 文章目录 1.shell命令以及运行原理2. Linux权限的概念3.Linux权限管理3.1 文件访问者的分类…

大语言模型 LLM book 笔记(二)

第二部分 预训练 第四章 数据准备 4.1 数据来源 4.1.1 通用文本数据 网页 书籍 4.1.2 专用文本数据 多语文本 科学文本 代码 4.2 数据预处理 4.2.1 质量过滤 基于启发式规则的方法 基于语种的过滤&#xff1a;语言识别器筛选中英文&#xff0c;对于多语的维基百科由于…

高阶数据结构——LRU Cache

1.什么是LRU Cache LRU是Least Recently Used的缩写&#xff0c;意思是最近最少使用&#xff0c;它是一种Cache替换算法。 什么是Cache&#xff1f;狭义的Cache指的是位于CPU和主存间的快速RAM&#xff0c; 通常它不像系统主存那样使用DRAM技术&#xff0c;而使用昂贵但较快速…

制约AI发展的关键在于人机环境系统智能的失配

人工智能&#xff08;AI&#xff09;发展的关键挑战之一就是人机环境系统之间的智能失配。这种失配指的是人工智能系统、其操作人员和应用环境之间的协调和适配问题&#xff0c;通常会影响系统的有效性和安全性。以下是一些具体方面&#xff0c;这些方面展示了人机环境系统智能…

《企业微服务实战 · 接口鉴权思路分享》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

ES JavaApi

1.RestClient操作索引库 2.RestClient操作文档 2.1查询 2.2更新 2.3删除 2.4批量新增&#xff08;bulk&#xff09; 3.DSL查询 对应的api 3.0解析响应 3.1全文检索 3.2精确查询 3.3复合查询-boolQuery 构建boolQuery 3.4排序和分页 3.5高亮