unitTest
-
单元测试 :是用来对一个模块/一个函数/一个类来进行正确性检验的测试工作
-
单元测试的四个核心:
test case(测试用例):一个py文件就是一个测试用例
test suite(测试套件):测试用例的集合
test runner(测试运行器):执行测试套件
test fixture(测试环境数据准备和数据清理或者测试脚手架)
-
test case(测试用例):一条用例就是一个完整的测试流程
1.步骤
1)导入 unittest 模块,被测文件或者其中的类
2)创建一个测试类,被继承 unittest.TestCase
3)重写 setUp 和 tearDown 方法(如果有初始化条件和结束条件)
4)定义测试函数,函数名以 test_开头。测试用例
5)在函数体中使用断言来判断测试结果是否符合预期结果
6)调用 unittset.main()方法运行测试用例--------无此方法也是可以运行
2.设置 setup 和 teardown:每次用例执行前都会执行初始化条件和结束条件
#测试网站搜索 def web_search(): print("网站搜索功能") return 10 import unittest class MyTest(unittest.TestCase): # def setUp(self) -> None: # print("测试用例初始化") # def tearDown(self) -> None: # print("测试用例回收资源") @classmethod def setUpClass(cls) -> None: print("测试用例初始化") @classmethod def tearDownClass(cls) -> None: print("测试用例回收资源") def test_01(self): print("Case--->test_01方法被执行") ret = web_search() self.assertEqual(20,ret) def test_02(self): print("Case--->test_02方法被执行") #该方法没有已test开头,不会执行 def t_03(self): print("Case--->test_03方法被执行")
python2 VS python3
-
print
- python2中print为输出语句
- Python3中print是一个函数
-
range和xrang
- range()在Python2中会得到一个列表,xrange(1,3)得到一个生成器
- 在Python中是生成器,没有xrange
-
字符串
- Python2中存储字符串,底层使用ascii编码
- python3存储字符串,使用的是Unicode
-
异常处理
python2
try: print 1/0 except Exception,e: print e
-
打开文件
python2有多种打开方式
f = file()
f = open()
f = file("1.txt","w") f.write("hello world") f.close()
-
标准输入
python2有两种标准输入
info = raw_input("提示消息:"),输入数据全部转换为字符串
info =input("提示消息:"),输入什么就输出什么数据类型,输入字符串加引号
-
除法操作:/
python2: /表示的是整除,加上浮点数就是真实除法
python3:/表示除法,//表示整除
虚拟机
-
开启虚拟化
以thinkpad为例,开机按F1,切换security页面,visualization选项,将后面的disable修改为enable,F10保存
操作系统
-
承上启下的作用
-
桌面系统:windows,Mac,Linux
-
移动设备操作系统:安卓(linux),IOS
网络配置
windows查看ip地址 ipconfig
linux查看ip地址 ifconfig
ping ip地址
NAT共享模式:虚拟机共享当前宿主机的网络
桥接模式:虚拟机直接连接物理网络
配置之前先用ping命令查看是否ping通,不通说明地址没有被占用
1.找到ip地址配置文件
su - root
cd /etc/sysconfig/network-scripts
gedit ifcfg-ens33
#注释BOOTPROTO="dhcp"
# 静态 IP 地址分配 BOOTPROTO="static"
# 配置 IP 地址 IPADDR=10.10.12.120
# 配置子网掩码 NETMASK=255.255.255.0
# 配置DNS DNS1=114.114.114.114 (或者8.8.8.8)
# 配置网关 GATEWAY=10.10.12.1
#修改完之后,重启网络
systemctl restart network
-
防火墙设置
CentOS 7 关闭防火墙 – 关闭防火墙:systemctl stop firewalld – 关闭开机启动:systemctl disable firewalld – 查看关闭状态:systemctl status firewalld
-
终端提示符
root@localhost 1.root:用户名 2.localhost:主机名 3./home:目录,路径 4.$ :用户类型($普通用户,#管理员用户) cd 切换目录 ls 查看文件
linux文件系统
bin可执行的命令文件夹 dev设备文件 home普通目录家目录 lib64 mnt proc run srv tmp var boot etc配置文件 lib系统依赖库 media opt root sbin sys系统文件 usr
-
WinSCP软件使用,windows下的客户的图形软件
双击打开,New session hostname:ip地址 user name:用户名 password:密码
-
帮助命令,是命令行的帮助文档,可以以友好的方式查看该命令的常规方式和其他选项
-h 或者--help 选项:用于查看指定命令的帮助信息 格式: ls --help which 命令:用于查看指定命令在文件系统环境变量中的位置 格式: which 命令 whereis 命令:用于查看指定命令在文件系统中的位置 格式: whereis 命令 man 命令
-
系统常见命令
ls:查看指定路径中的文件 cd:改变当前工作路径 pwd:查看当前工作路径 ifconfig:查看当前网络配置信息 poweroff:关闭计算机 shutdown:关闭计算机 reboot:重启计算机 grep:数据检索命令 |:管道符号,连接多个命令 find:文件检索命令
-
ls 查看
ls path 命令 ,用于查看path下的文件列表 list files -a:用于查看所有文件,包括隐藏文件 -l:列表方式查看文件信息,包含文件权限,所属用户,组,文件大小 -R:递归方式查看当前文件下的所有子文件
-
cd:进入指定文件夹 cd path
cd /home/han cd:直接回车,进入当前用户家目录 cd ~:进入当前用户家目录 root用户,/root/ han用户,/home/han
-
shotdown:用命令关闭计算机,可以延时
shutdown -r now :立刻重启系统 shutdown -r 10 :10分钟后重启 shutdown -r 17:30 :指定时间重启 shutdown -c :取消shutdown命令操作
-
grep:数据检索命令
-v 显示不包含匹配文本的所有行 -n 显示行号 -i 忽略大小写 grep fib demo_01迭代器.py 在当前目录的demo_01文件中查找fib字符 grep info *.log #在所有的.log文件中找info grep -i fib demo_01迭代器.py 在当前目录的demo_01文件中查找fib字符,忽略大小写 grep -in fib demo_01迭代器.py 在当前目录的demo_01文件中查找fib字符,忽略大小写,显示行号
-
|:管道符号,连接多个命令,将第一个命令的输出结果作为第二个命令输入
ls|grep demo,在当前目录搜寻包含demo名称的文件
-
find:文件检索命令
#查看当前文件所有后缀为.py的文件 find ./ -name "*.py" #查看当前文件目录所有以大写字母的文件 find ./ -name "[A-Z]*" #查看/tmp目录下小于2M的文件 find /tmp -size -2M #查找当前目录权限为777的文件或目录 find ./ -perm 777
-
-
文件操作命令:主要用于文件/目录的管理,包含文件的创建、重命名以及删除,文件夹的创建,
重命名以及删除,文件/目录的复制、剪贴等操作
命令 描述 echo 信息打印,echo "文本信息" touch 创建文件 touch 文件名称 cp 复制文件 cp 源文件 目标文件 ,将源文件复制到目标文件 mv 移动文件 mv 源文件 目标文件 ,将源文件移动到目标文件 mkdir 创建目录 mkdir 文件夹名称 rm 删除文件 rm(-r递归删除,-f忽略提醒) 文件名 -
压缩解压命令
命令 描述 tar 文件归档 gzip .gz格式压缩 bzip2 .bz格式压缩 zip .zip格式压缩 xz .xz格式压缩 -
tar :归档命令,可以将多个文件打包成一个文件,也可以将打包的文件拆分成多个文件
-c 创建打包文件 -v列出归档过程 -f指定文件名称,f后面一定.tar文件 -x解开文档 -t列出文档中包含的文件 tar -cvf target.tar file1 file2 file3 可以将多个文件打包成target.tar文件 tar -xvf target.tar 将target.tar中文件释放到当前目录 tar -tvf target.tar 查看target.tar包含的文件列表
-
gzip:通常和tar归档一起用,不能压缩目录
gzip demo.tar 压缩 gzip -d demo.tar.gz 解压
-
bzip2,zip,xz
bzip2 -k 文件.tar ,压缩后文件后缀.tar.bz2 bzip2 -d 文件.tar.bz2 解压 或者bunzip2 文件.tar.bz2 zip -r 文件.tar unzip 文件.zip xz -z 文件.tar 压缩文件 xz -d 文件.xz 解压
-
权限管理命令
文件权限管理是 Unix/Linux 系统中最重要的一部分,因为有完善的权限体系,所以系统的安全 性和稳定性以及可靠性非常高。
u/g/o/a | 含义 |
---|---|
u | 该文件的所有者 |
g | 该用户的所有者所属组,用户组 |
o | other表示其他以外的人 |
a | all表示这三者都是 |
r/w/x | 含义 |
---|---|
r | read,表示可读,如果没有r权限,无法通过ls查看目录内容 |
w | write,表示写入 |
x | excute,表示可执行 |
字母 | 说明 |
---|---|
r | 读取权限,数字代码“4” |
w | 写入权限,数字代码2” |
x | 执行权限,数字代码“1” |
- | 不具备任何权限 |
touch 111.txt
增加操作权限
chmod u+x 111.txt
没有读的权限
chmod 333 111.txt
-
普通用户添加管理员权限
修改/etc/sudoers su - root 切换到root用户 修改权限,chmod 741 sudoers vim sudoers 找到下面一行添加 root ALL=(ALL) ALL han ALL=(ALL) ALL 修改完毕,han账号可以获取root进行操作
-
用户管理命令
Unix/Linux 系统管理超级用户 root 下可以创建多个管理员用户或者普通用户,不同的用户可以 同时远程登录系统各自独立完成任务,也就是多用户多任务操作。
useradd 增加用户,在系统中创建一个用户
userdel 删除用户,将系统中的某个用户删除
passwd 修改指定用户密码
切换到root用户 su - root ,su - , su - 账号 useradd增加一个用户,在系统中创建一个zhang用户 useradd zhang 此时/home/多了一个zhang目录 passwd zhang 修改用户张的密码 su - zhang 切换到张用户 此时在张用户中是无法添加用户(zhang 不在 sudoers 文件中。此事将被报告) userdel zhang 删除张用户,但是目录还存在 如果把进程被占用就杀死进程 kill -9 进程号 su - zhang user zhang does not exist,说明用户已被删除 查看有哪些用户 cat /etc/passwd han:x:1000:1000:han:/home/han:/bin/bash zhang:x:1001:1001::/home/zhang:/bin/bash liu:x:1002:1002::/home/liu:/bin/bash 自己创建用户在最后 用户名 x:密码 1000:用户ID
-
系统管理命令
系统管理命令,是针对系统信息进行查看、配置以及维护的操作命令,类似 windows 系统中的 任务管理器之类的。
free -h 查看当前计算机内存使用情况 df -h 查看当前系统磁盘使用情况 top 查看系统进程信息,类似windows中的任务管理器 kill 进程号 结束指定的进程 kill -9 发送信号给进程,你被终结了,数字9表示无条件退出(一共1-30个信号) 进程管理命令 ps 命令用于查看和检索指定的进程信息 ps -ef|grep sshd
-
软件管理命令
yum list: 查看已安装的软件 yum search 名称,查看包含此名称的软件 yum search python3 yum install python3.x86_64 yum remove 名称 删除程序包
-
SCP命令
格式:scp -r 要复制的绝对路径下的文件 用户@IP: 地址(目标主机路径) -r 文件夹目录 克隆虚拟机 右击-->管理-->克隆-->下一步-->虚拟机当前状态-->创建完整克隆-->选择名称和位置-->完成 修改主机名:hostnamectl set-hostname node1 ,将主机名修改为node1 scp -r /home/han/demo_01迭代器.py han@10.10.12.135:/home/liu 此时 Permission denied,没有权限进去目标主机目录,修改目标主机目录
文件内容查看命令
-
more 分页查看
文本内容较多的情况下,使用 more 命令可以分页查看,
more file 分页查看内容 more +n file 从第n行开始显示内容 more +/string file 从包含string字符的前两行开始展示 操作方式 空格:向下滚动一页 回车:向下滚动一行 b: 向上滚动一页 q:退出浏览 =:显示行号,只显示最下方当前行号
-
cat全文浏览
cat file 全文浏览 cat -n file 带行号全文浏览 cat file1 file2 > file 合并文件 tac file 倒序浏览
-
head 头部浏览,默认浏览前10行内容
head -n 50 file 显示file文件前50行内容 head -n -10 file 显示除了最后10行以外的内容
-
tail 尾部浏览
查看文本文件尾部内容,默认查看 10 行,基本语法:
tail -5 file 显示最后5行内容 tail -n +50 file 从第50行显示内容 tail -5f file 显示最后5行内容,并且持续监控文件内容
-
其他查看方式
less 分页浏览 分页浏览文件内容,类似 more 命令,基本语法 $ less file # 分页浏览 file $ less -N file # 分页浏览 file,并展示行号 $ less -m file # 分页浏览 file,并显示百分比 sort 排序浏览 sort 命令可以用来对文本文件中的内容进行排序查看,默认为字典升序 $ sort 文件 # 字典升序查看文件内容 $ sort -r 文件 # 字典降序查看文件内容 $ sort -u 文件# 剔除文本文件中重复的内容 $ sort -n 文件# 按照数字排序 sed 流式浏览 sed -n "1,5p" 文件 显示1~5行内容 sed -n "3,5{=;p}" 显示3~5行内容,并且打印行号 sed -n "10p" 显示第10行内容
vim编辑器
-
命令模式
-
输入模式
-
末行模式
命令模式:按一下ESC,即可进入命令模式,此模式下可以使用各种合法的vi命令,此时从键盘上输入的任何字符都被当成命令来解释,命令合法,则执行相应动作 输入模式:在命令模式下输入 i ,该模式下用户输入的任何字符都被当成文本保存起来,并显示在屏幕上,在输入过程如果想回到命令模式,按下ESC即可 末行模式:用户按: 进入末行模式,此时vim会显示在窗口的最后一行
-
(1) 命令模式
按键 描述 x 删除光标所在字符,相当于delete X 删除光标前一个字符,相当于backspace dd 删除光标所在行,删除一行 ndd n为数字,连续删除光标后n行 yy 复制光标所在行,复制一行 nyy n为数字,连续复制光标后n行 p(小写),P(大写) 小写p复制数据粘贴在下一行,大写P数据粘贴在上一行 u,ctrl+r 撤销, 反撤销 G和gg G文档最后一行,gg文档第一行 - ^ 所在行开头,$所在行尾部
-
(2) 编辑模式
按键 描述 i 光标前面插入字符 I 行首插入字符 a 光标后面插入字符 A 行尾插入字符 o 光标下一行输入字符 O 光标上一行输入字符 -
(3) 末行模式
命令 含义 :w 保存文件 :w! 强制保存 :q 不保存退出 :q! 不保存强制退出 :wq 保存并退出 :wq! 强制保存并退出
-
定时任务
-
在某个指定时间点执行任务
-
at 一次性定时任务,crontab 周期性定时任务
-
at 命令添加一次性任务
at -l :查看任务 atrm n删除编号n的定时任务 at 时间点 指定的时间点上,添加任务 ctrl+D保存 案例: 在15:07 在/home/han/1.txt 输出 "hello" echo "hello" >> /home/han/1.txt 打开新终端 ,tail -f 1.txt, 实时查看 at:时间点(HH:MM) 时间早于系统时间,默认第二天这个时间执行 时间晚于系统时间,默认今天这个时间执行
-
周期性定时任务
通过crontab的命令,添加,编辑,删除任务
crontab -l:列出所有的周期性任务
crontab -e:编辑当前用户的周期性任务
crontab -r:删除所有周期性定时任务
crontab -e 进入周期性任务编辑模式 * * * * * 依次是:分钟,小时,天,月,星期 * :表示每一天的每小时的每分钟执行一次 10:表示每一天的每小时的第10分钟执行 5,10,20 :表示每一天的每小时的第5,10,20分钟执行 5-10:表示每一天的每小时的第5分钟开始直到第10分钟结束 案例:每分钟向/home/han/1.txt写入hello crontab -e 进入周期性任务编辑模式,用vi编辑器打开一个文件 * * * * * echo "hello" >> /home/han/1.txt 打开新终端 ,tail -f 1.txt, 实时查看
-