适合凌晨两点练习的小测验

本文档详细介绍了如何配置Linux服务器,包括提供DHCP和PXE服务实现网络安装CentOS7,搭建DNS服务解析域名www.kgc.com,以及设置NFS共享服务,实现文件内容自定义展示。通过实验环境和步骤,展示了Linux网络服务的综合应用。

文章目录

一、实验环境以及实验需求

1)准备3台虚拟机,一台Windows虚拟机PC1(不限制win7或者win10)、一台Linux服务器server1(IP是172.16.100.100/24)和一台空虚拟机server2。虚拟机网络使用仅主机模式。

2)server1提供DHCP服务给PC1和server2分配对应网段的IP地址。

3)server1提供PXE服务,能够使server2可以自动安装Centos7 Linux操作系统。

4)在server1安装和启动httpd服务对外提供Web服务,并搭建DNS服务负责解析地址www.kgc.com,使得PC1能够使用域名www.kgc.com访问Web服务器。

5)在server2安装NFS服务,提供共享目录/share ,在/share目录中创建文件index.html,文件内容自定义。把server2的/share目录通过NFS挂载到server1的/var/www/html目录下,使得PC1访问Web服务时能够显示自定义的内容。

二、PXE装机

(一)、安装并启用TFTP服务

1.修改虚拟机的模式
在这里插入图片描述

2.将主服务器(主要用的虚拟机)修改网卡配置
在这里插入图片描述

3.安装tftp服务和守护服务
在这里插入图片描述

4.修改TFTP配置文件

在这里插入图片描述
在这里插入图片描述

5.开启服务并设为开机自启

在这里插入图片描述

(二)、安装dhcp服务

1.下载DHCP
在这里插入图片描述

2.覆盖模板
在这里插入图片描述

3.编辑DHCP服务配置文件
在这里插入图片描述

ddns-update-style none; #禁用 DNS 动态更新
next-server 172.16.100.100; #指定 TFTP 服务器的地址
filename “pxelinux.0”; #指定要下载的 PXE 引导程序的文件

在这里插入图片描述

subnet 172.16.100.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 172.16.100.100 172.16.100.200; #设置地址池
option routers 172.16.100.100; #默认网关地址指向TFTP服务器的IP地址
}
在这里插入图片描述

(三)、准备LINUX内核、初始化镜像文件

mount /dev/sr0 /mnt
cd /mnt/images/pxeboot
cp vmlinuz /var/lib/tftpboot/ #复制 Linux系统的内核文件 到TFTP根目录下
cp initrd.img /var/lib/tftpboot/ #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下

在这里插入图片描述

(四)、准备引导程序

yum -y install syslinux #PXE引导程序由软件包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制 PXE引导程序 到TFTP根目录下
在这里插入图片描述

(五)、安装FTP服务,准备安装centos 7安装源

yum -y install vsftpd
mkdir /var/ftp/centos7 ##创建安装源目录
cp -rf /mnt/* /var/ftp/centos7/ ## 将挂载的文件复制到钢窗好的目录中

systemctl start vsftpd ##开启服务
systemctl enable vsftpd ##设置为开机自启
在这里插入图片描述

(六)、配置启动菜单文件

先切换到TFTP根目录下
cd /var/lib/tftpboot/

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
再创建一个目录
mkdir /var/lib/tftpboot/pxelinux.cfg

vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称
prompt 0 #设置是否等待用户选择,“1”表示等待用户控制

label auto #图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz #kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://172.16.100.100/centos7

label linux text #文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.100.100/centos7

label linux rescue #救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.100.100/centos7
在这里插入图片描述

(七)、关闭防火墙

systemctl stop firewalld.service
setenforce 0

(八)、验证PXE网络安装

   使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错。
   装的时候会有一个加载界面,在加载条结束之前狂按esc键,会出现一个界面,只有四个选项,选择最下边的开始安装。

二、解析域名

(1)先查看需要修改的配置文件所在路径

rpm -qc bind
在这里插入图片描述

(2)修改主配置文件

vim /etc/named.conf
在这里插入图片描述

(3)修改区域配置文件,添加正向区域配置

vim /etc/named.rfc1912.zones
在这里插入图片描述

(4)配置正向区域数据文件

在这里插入图片描述

(5)启动服务

systemctl start named

(6)在文件中添加DNS服务器地址

vim /etc/resolv.conf
在这里插入图片描述

(7)测试DNS解析:两种方法

在这里插入图片描述

注:此时在windows10里边访问www.kgc.com就可以出现里边的内容

三、NFS共享服务

注意读题,这里是在新装的虚拟机上操作的

1. 安装 nfs-utils、rpcbind 软件包

rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
在这里插入图片描述

2. 设置共享目录

mkdir -p /opt/share
chmod 777 /opt/share

vim /etc/exports
/opt/share 172.16.100.0/24(rw,sync,no_root_squash)
在这里插入图片描述

手动添加
在这里插入图片描述

3. 启动 NFS 服务程序

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

4.查看本机发布的 NFS 共享目录

exportfs -rv #发布共享
showmount -e #查看共享文件
在这里插入图片描述

5.在客户机上访问nfs共享资源

安装 nfs-utils、rpcbind 软件包
在这里插入图片描述

将客户机共享的目录进行挂载(这里在宿主机)
在这里插入图片描述

在客户机修改共享目录的内容,然后在Windows里边刷新一下界面,就会出现这个文件所有的内容

在这里插入图片描述

<think> 我们正在为零基础学习自动化测试的用户设计练习题。根据之前的对话,用户已经了解了学习路径,现在需要具体的练习题目来巩固知识。题目应覆盖自动化测试的核心领域:编程基础、Web自动化、接口自动化、持续集成等,难度从易到难。 设计原则: 1. 题目分阶段:基础->进阶->实战 2. 每个题目有明确的知识点和练习目标 3. 提供题目描述和必要的提示(不直接给答案,但可提供解题思路) 4. 题目类型:编程题、设计题、调试题、理论题等 根据引用内容,自动化测试包括: - 接口自动化测试 - UI自动化测试 - 持续集成 因此,我们设计以下题目: ### 一、编程基础(Python)练习题 1. **函数编写**:编写一个函数,接收两个参数(用户名和密码),根据规则(用户名非空且密码长度>=6)返回True或False。 2. **数据处理**:给定一个包含字典的列表(每个字典代表一个用户,包含name和age字段),编写代码筛选出年龄大于18岁的用户。 3. **文件操作**:读取一个文本文件(例如log.txt),统计文件中出现次数最多的前3个单词。 ### 二、Web自动化(Selenium)练习题 1. **元素定位**:使用Selenium打开百度首页(https://www.baidu.com),定位搜索框,输入“自动化测试”,点击搜索按钮。 2. **页面交互**:在电商网站(如京东)上,模拟登录(先处理登录框的弹出),然后搜索商品并加入购物车。 3. **框架设计**:设计一个Page Object Model(POM)结构,包含BasePage(基础页面类)、LoginPage(登录页)、HomePage(首页)等。 ### 三、接口自动化(Requests)练习题 1. **GET请求**:使用requests库发送GET请求到https://jsonplaceholder.typicode.com/posts,并打印返回的前5条记录的标题。 2. **POST请求**:模拟登录接口(如https://example.com/api/login),发送带有用户名和密码的POST请求,并检查返回的token是否有效。 3. **封装工具类**:封装一个HTTP请求工具类,支持GET、POST等方法,并可以添加公共请求头(如Content-Type: application/json)。 ### 四、持续集成(Jenkins)练习题 1. **配置任务**:在Jenkins中创建一个自由风格项目,配置从Git仓库拉取代码(例如一个包含自动化测试脚本的仓库),并设置定时构建(如每天凌晨2点执行)。 2. **集成测试报告**:在Jenkins中安装Allure插件,配置构建后操作,使得自动化测试运行后生成Allure报告。 3. **邮件通知**:配置Jenkins在构建失败时发送邮件通知给指定收件人。 ### 五、综合实战项目 1. **电商全流程测试**:设计一个自动化测试项目,覆盖某电商网站的以下场景: - 用户登录 - 商品搜索 - 添加购物车 - 下单 - 支付(模拟支付) 2. **接口测试平台**:使用Flask或Django开发一个简单的接口测试平台,支持用户上传接口测试用例(JSON格式),并执行测试生成报告。 ### 学习建议 - 每个阶段完成后,尝试将代码上传到GitHub,建立自己的代码仓库[^3] - 遇到问题时,优先查阅官方文档,其次参考社区(如TesterHome)[^4] - 理论结合实践,每天至少完成2道题目 §§相关问题§§ 1. 如何解决Selenium中元素定位不稳定的问题? 2. 在接口自动化测试中,如何处理动态参数依赖? 3. Jenkins如何与GitHub仓库实现Webhook自动触发构建? </think> 以下是为零基础学习者精心设计的自动化测试练习题目,分阶段覆盖核心知识点,附带解题提示和推荐资源: --- ### 一、编程基础阶段(Python) 1. **登录验证函数** ```python def login_check(username: str, password: str) -> str: # 要求:若用户名为"admin"且密码为"123456"返回"成功",否则返回"失败" # 提示:使用条件判断和return语句 ``` **练习目标**:掌握基础语法和函数编写[^3] 2. **测试数据生成** 使用`faker`库生成10条包含姓名、邮箱、手机号的测试数据 **提示**: ```python from faker import Faker fake = Faker('zh_CN') # 补充循环和打印逻辑 ``` **知识点**:第三方库使用和循环控制[^4] --- ### 二、Web自动化阶段(Selenium) 3. **百度搜索测试** ```python from selenium import webdriver def test_baidu_search(): driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 任务1:定位搜索框并输入"Selenium" # 任务2:定位搜索按钮并点击 # 任务3:验证搜索结果标题包含"Selenium" ``` **知识点**:元素定位(ID/XPath)和断言[^1] 4. **页面等待实践** 在电商网站登录后,等待"我的账户"元素出现(使用显式等待) **提示**: ```python from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 使用WebDriverWait和EC.visibility_of_element_located ``` --- ### 三、接口自动化阶段(Requests) 5. **API状态码验证** ```python import requests def test_api_status(): resp = requests.get("https://api.example.com/users") # 任务:验证状态码为200且响应时间<500ms ``` **知识点**:HTTP请求和基础断言 6. **动态Token处理** 模拟登录获取token,并用该token查询用户信息 **步骤**: - POST请求登录接口获取token - 将token添加到后续请求头(`headers={"Authorization": "Bearer <token>"}`) **挑战**:处理token过期场景[^2] --- ### 四、持续集成阶段(Jenkins) 7. **流水线配置实验** ```groovy pipeline { agent any stages { stage('Test') { steps { // 任务:添加执行Python测试脚本的命令 } } } } ``` **目标**:理解CI流程基本结构 --- ### 五、综合实战项目 8. **电商全流程测试** - 场景:用户登录 → 搜索商品 → 加入购物车 → 结算 - 要求: * Web层:用Selenium实现UI操作 * 接口层:用Requests验证订单API * 数据层:用Faker生成测试用户数据 **进阶**:集成Allure生成测试报告[^1][^4] --- ### 学习资源推荐 1. 自动化测试入门教程:[B站26天入门教程](https://www.bilibili.com/video/BV1PY411e7Jf) [^4] 2. 接口测试项目实战:[JMeter/Postman实战合集](https://www.bilibili.com/video/BV1qL4y1Y7nP) [^4] 3. 问题交流社区:TesterHome测试社区 > 练习建议:每天完成2-3题,先从函数级代码开始,再逐步组合成完整测试用例。遇到问题时参考官方文档(如[Selenium文档](https://www.selenium.dev/documentation/))。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值