全部
测试开发之系统篇-按需创建测试虚拟机
首先,我们来了解一下KVM虚拟机有关的几个概念和工具。
kvm:基于内核的虚拟机(引擎)
qemu:用于模拟虚拟机IO设备
qemu-img:虚拟机磁盘管理工具
libvirt:虚拟化服务的API接口
virsh:基于libvirt实现的命令行工具
qemu-manager:图形化管理工具
新建KVM虚拟机时,可以指定另一磁盘文件作为BackingFile。BackingFile是一个只读的虚拟磁盘基础映像,可以在多个虚拟机间进行共享。基于BackingFile创建和运行虚拟机时,只会在自己的磁盘文件中增量地写入文件,从而提高效率、节省磁盘和维护成...
2021-06-21
5W1H聊开源之Who——谁来参与开源?
上次Who的主体是谁“发明”了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中?
很多人都以为参与开源是一件很高门槛的事情,必须要通过代码贡献才算是开源项目的参与者或贡献者,其实这是一个很大的理解误区。一个开源项目其实就是一个社区,在社区里面会包含各种各样的角色,开源项目的角色有Contributor(贡献者)、Committer(提交者)、Maintainer(维护者)、User(用户)。大多数人对参与开源的理解可能局限在狭义的前两者,而对于这个问题第一反应可能也是直接参与到开发中,才是参与了开源项目。
User
...
2021-06-16
新手程序员必学10大技能
如果你已经有一段时间的编程经验,或者正准备学习编程,那么可能会考虑的是:怎样才能成为一名优秀的程序员?计算机专业的毕业生如何为软件开发和编程职业生涯做准备?职场对于初级开发人员有哪些期望?这是临近毕业或初入职场的新手程序员们密切关注的问题。以下十项技能并不是必须,但它为程序员应该知道的事情提供了一个很好的起点,供新手程序员参考。这都是作为程序员的基本技能,将长期伴随你的程序员职业生涯。如果你的目标是从事软件开发和编程工作,那么这些都是保持竞争力而可以学习和提高的东西。
数据结构和算法
如果想成为一名合格的程序员,那么必须了解掌握数据结构和算法。这是任何编程工作面试的重要主题之一,如果不知...
2021-06-11
测试开发之系统篇-安装KVM虚拟机
虚拟机(Virtual Machine)和容器(Container)是两种流行的虚拟化技术。
虚拟机模拟机器的硬件,包括了完整的操作系统和应用,它一旦被开启,预分配给它的资源将全部被占用。容器是运行在宿主机上的一个进程,多个容器之间使用同一个宿主机的操作系统内核。容器相对于虚拟机启动更快、占用资源更少,但隔离和安全性要弱于虚拟机。
测试人员为了准备不同的测试环境,往往使用可视化的VMWare、VirtualBox软件,来模拟不同的操作系统和浏览器。本文介绍另外一种Qemu+KVM的虚拟化解决方案,通过它在自动化测试中,我们可以使用命令行,按需地自动创建、销毁和管理虚拟测试机。另外,...
2021-06-09
5W1H聊开源之Who/When/Where——谁在何时何地“发明”了开源?
美国政治传播学家拉斯韦尔提出了5W传播模式,经过后人的不断运用和发展总结,形成了一套逐渐成熟的“5W1H”体系,即:对选定的项目、工序或操作,都要从原因(何因Why)、对象(何事What)、地点(何地Where)、时间(何时When)、人员(何人Who)、方法(何法How)等六个方面提出问题进行思考。 本系列文章就以5W1H体系来讲一讲开源的那些事。这一次,讲讲开源的Who/When/Where——谁在何时何地“发明”了开源?
微软的一封信
自上世纪第一台计算机问世以来,计算机产业是以硬件为主的商业模式,即硬件销售为主要收入来源,附带的软件并不收费且附有源代码,便于专业人员调试和修改。虽然...
2021-06-07
5W1H聊开源之What——开源协议有哪些?
开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。开源协议规定了用户在使用开源软件时的权利和责任,虽然不一定具备法律效力,但是当涉及软件版权纠纷时,也是非常重要的证据之一。软件在追求“自由”的同时,不能牺牲程序员的利益,否则将会影响程序员的创造激情,因此世界上现在有 90 多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益(详细列表见:https://opensource.org/licenses/alphabetical)。对于准备编写一款开源软件的开发人员,也非常建...
2021-05-31
测试开发之系统篇-常用系统命令
以下介绍测试工作中常用的一些命令。未专门标注的,为Linux和Mac系统下的。
查看占用端口的进程
Linux
aaron@ubuntu:~$ lsof -i :8085 | grep LISTEN
___server 69080 aaron 11u IPv6 0x5624b7cdebdb6b7b 0t0 TCP *:8085 (LISTEN)
Windows
C:>netstat -aon | findstr :80 | findstr LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 ...
2021-05-28
测试开发之网络篇-问题定位
我们在测试工作中,时常遇到某个产品网站或服务连不上的问题。借助前面了解的网络相关知识,可以从以下几个视角进行初步的问题排查。
ping网站域名,确认是否是DNS解析的问题;
通过域名访问内网服务时,先确认hosts文件是否配置了域名映射;
ping网站IP地址,检查到目标服务器的网络连通性;
telnet IP+端口,确认远程服务是否可达;
有条件的去服务器上执行telnet,以分辨是服务未启动、还是被防火强阻挡;
ping 114.114.114.114检测是否可以访问Internet公网;
ifconfig查看电脑IP、默认网关、DHCP、DN...
2021-05-25
测试开发之网络篇-常用命令
ipconfigWindows系统下,ipconfig加上/all参数,可查看本机的IP地址、掩码、默认网关、DHCP和DNS服务器等信息。Linux或mac系统下,请使用ifconfig命令代替。
C:\Users\admin>ipconfig /all
Windows IP Configuration
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . : DHCP
Description . . . . . . . . . . . : In...
2021-05-25
测试开发之网络篇-网络路由
互联网是一个庞大的分层网状结构,亿万的设备分布在其大大小小的子网中。这里我们展示了一个简化的办公网络,包括3个子网,子网间通过路由器相连,子网内部使用二层交换机或无线热点连接了一些电脑和办公设备。
图中的二层交换机是工作在数据链路层的,它维护了一个通过ARP(Address Resolution Protocol,地址解析协议)学习到的、IP地址到物理地址的映射,以此来决定发往某个目标主机的数据包,从交换机哪个端口转发出去。从而实现同网段内设备的通信。
路由器是工作在网络层的,它的端口连接了另一个路由器或交换机,每个端口配置了(到达)不同子网的地址。路由器间使用OSPF(Open Shor...
2021-05-25