自动化运维第二节课
dir—windows下查看当前目录中内容
cd 目录名或文件夹名(当前目录下有的目录),表示进入这个文件夹中
cd …表 示回到上一级,…表 示父目录,.表 示当前目录
ping www.baidu.com
本机IP, 127.0.0.1 localhost 局域网ip 196.168.1.102
ifconfig linux下查看网络ip地址
ipconfig windows下查看网络
ping 127.0.0.1 ping 局域网(ifconfig/ipconfig查看一下windows/云服务器的地址),ping localhost ping www.baidu.com
5分钟进行网络诊断。
通信实体之间必须遵循的规则和约定被称为网络协议(network protocol)
get是查询 服务器数据,从服务器中取数据。post 添加数据(往服务器中添加数据),put修改,delete删除
我们发的请求我们可以改成任何响应。可以先保存响应,再修改一下响应内容。或直接就是越过一些流程后的影响。比如:点击支付发的请求,直接改成支付成功的响应。越过输入密码的请求。
刚才说的效果如果用在银行系统,就称为档板服务器,如果有多个请求的响应都修改了,就直接做了 某个模块增删 改查的接口所有响应都弄假的mock虚假的,我们也叫mock服务器。
作业:
1、二进制与十进制转换,10110110转成十进制,将127转成二进制。2、协议中响应状态码403有多少种可能。3、content-type在多少种4、如果网断了,如果诊断网是在哪里断的。4、应用层协议有哪些,默认端口号是什么?5、fiddler有哪些功能,在测试中如果应用,在安全中如何应用,根据情况举例说明。6、实践:fiddler还可以中断响应,就是把返回的影响现场修改,试着实现一下。添加购物车的数量n个改成11111个。
答案:
1.182 1111111
2.Web客户端发送的请求被Web服务器拒绝了, 如果服务器想说明为什么拒绝请求,可以包含实体的主体部分来对原因进行描述。但这个状态码通常是服务器不想说明拒绝原因。
3.定义:MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。
content-type有多少种:将近200种
常用的格式:
1),text/html 文本方式的html
2),text/plain 纯文本
3 ),text/xml 文本方式的xml
4),application/x-www-from-urlencoded 表单提交(普通表单,非上传)
5),application/json 数据以json形式编码
6),application/xml 数据以xml形式编码
7),multipart/form-data 表单上传图片、文件类型等附件时必须用该类型
4.一:TELNET (远程登录) (C/S)(tcp)
*概述:
远程登录,它是Tnternet中用来进行远程访问的重要工具之一。远程登录功能允许用户与远程计算机进行动态交互,即用自己的键盘,鼠标等输入设备操纵远程计算机,运行远程计算机上的软件,在自己的显示器上了解运行情况,查看运行结果。
通信过程:
用户的终端实际上与本地的TELNET客户机程序进行通信,远程主机与远程TELNET服务器进行通信。然后通过TCP进行连接, 客户机与服务器之间采用NVT标准进行通信。
1:建立与服务器的TCP连接;
2:从键盘上接收用户输入的字符;
3:把用户输入的字符串变成标准格式并送给服务器;
4:从远程服务器接收输出的信息;
5:把该信息显示在用户的屏幕上。
二:FTP (文件传送协议)(C/S)(TCP)
概述:
文件传输协议,负责将文件从一台计算机传送到另一台计算机上,并且保证其传输的可靠性。
客户端提出文件传输请求,服务器接收请求并提供服务。首先在本地计算机上启动FTP客户程序,利用他与远程计算机建立连接,远程计算机上的服务端FTP程序被激活。这样本地的FTP程序成为一个客户,而远程FTP程序成为服务器,他们之间通过TCP建立连接,端口号为21.
FTP协议的客户机与服务器之间需要建立两个连接, 一个用于控制数据传输(端口21), 一个用于数据传输(端口20)。数据连接主要用于数据传输,完成文件内容的传输。控制连接主要用于传输FTP控制命令和服务器的回送消息。
1
FTP的功能:
1:可以从本地上传和从服务器下载文件;
2:能够传输各种类型的文件,包括文件,图片, 视频等;
3:能够提供对本地和远程计算机的目录操作。
4:对文件进行改名删除等操作。
FTP的服务获取有两种方式:一种是通过输入用户名和登录口令, 另一种是输入anonymous作为用户名,邮箱地址作为登录口令进行登录。
FTP客户与服务器之间可以通过命令和回答进行交互。
三:SMTP (简单邮件传输协议)(TCP)(C/S)
概述:
SMTP协议包括两个标准子集, 一个标准定义电子邮件信息的格式,另一个是传输邮件的标准。在互联网中,电子邮件的传送是依靠SMTP协议进行的。SMTP的主要任务是负责服务器之间的邮件传送,最大的特点是简单。只规定了电子邮件如何在互联网中通过TCP协议在发送方和接收方之间进行传送。
工作方式:
基于客户/服务器方式进行的。发送人的主机为客户方,收件人的邮件服务器为服务方。在传送邮件的过程中,需要使用TCP协议进行连接(默认端口号为25)。发送主机先将邮件发送到本地SMTP服务器上,本地SMTP服务器与接收方的邮件服务器建立可靠的TCP连接,从而保证了邮件传输的可靠性。
注意:
接收方必须使用POP3协议才能取得自己邮箱中的邮件。
POP3协议的主要任务是实现用户计算机和邮件服务器的俩节,从邮件服务器的电子邮箱中读取邮件。
!SNMP邮件传输过程
四:HTTP (超文本传输协议)(C/S)(TCP)
1:支持客户服务器模式:
2:简单快速:客户向服务器请求服务时,只需传输请求方法和路径;请求方法常有POST, GET, HEAD, 每种规定了客户与服务器联系的类型的不同。
3:灵活:HTTP允许传输任意类型的对象,
4:无连接:无连接的意思是限制每次连接只处理一个请求。服务器处理完用户的请求就会断开连接。采用这种方式可以节省传输时间。
5:无状态:HTTP是无状态协议。无状态是对事务处理没有记忆功能。缺少状态意味着如果后续处理需要前面的信息,则他必须重传,另一方面,在服务器不需要先前信息时他的应答就比较的快。
五:DNS (域名解析系统)(UDP)
概述:
用域名系统来处理IP地址和主机名之间的转换, 在DNS中主机名即为域名。
DNS也是一个应用层协议,为了提供主机名到IP地址的转换服务,DNS是运行在UDP协议之上,使用53号端口。
DNS通常被其他应用层协议(HTTP, SMTP, FTP)所使用, 以便将用户提供的主机名解析为IP地址。
域名是一种分布式并具有层次结构的命名机制:
例如:www.sina.com.cn, 其中最高域名是cn, 表示这台主机在中国。 第二级域名是com, 表示这个主机属于公司机构; 接下来是sina表示这台主机属于新浪网, 最左边的是www,表示该主机是一台web服务器。人们可以很容易的就记住它的域名,而不用他的IP地址。
查询方法:
1:递归解析:
当收到请求时, 域名服务器应返回所要求的解析结果,不论该服务器是否有相关的信息。该服务器没有相关信息时, 那么就该向其他的服务器进行请求,直到获得结果或者错误信息,然后把结果返回给解析请求者。
2:重复解析:
接收到请求时, 域名服务器若有该域名的相关信息,则返回IP地址给解析请求者。若无该域名的相关消息,则该服务器不再进一步向其他域名服务器请求解析,而是返回一个可用的域名服务器的地址给解析请求者,让解析请求这自己去向该域名服务器作进一步的解析请求。
二者的区别在于:前者将域名解析的工作交给域名服务器完成, 而后者则将主要的工作交给请求域名服务的主机来完成。
1
六:SNMP (简单网络管理协议)(UDP)
概述:
SNMP:“简单网络管理协议”,用于网络管理的协议。SNMP用于网络设备的管理。SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了“读”操作;管理员需要向设备执行设置操作,所以SNMP提供了“写”操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了“Trap”操作。
SNMP被设计为工作在TCP/IP协议族上。SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。
管理方式:
!SNMP管理方式
Get:读取网络设备的状态信息
Set:远程配置设备参数
Trap:管理站及时获取设备的重要信息
七:TFTP (UDP)
概述:
TFTP协议全称为Trivial File Transfer Protocol。目标是在UDP之上上建立一个类似于FTP的但仅支持文件上传和下载功能的传输协议,所以它不包含FTP协议中的目录操作和用户权限等内容;
工作流程:
l server在端口为69的UDP上等待Client发出写文件请求包
l Client通过UDP发送符合TFTP请求格式的WRQ包给Server。从UDP包角度看,该UDP包的源端口由Client随意选择,而目标端口则是Slient的69。
l Server收到Client的这个请求包后,需发送ACK给Client。对于写请求包,Server发送的ACK包确认号为0。
l Client发送DATA数据给Server,Sver接收数据并写文件
l 当Client发送的DATA数据长度小于512字节时,Server认为这次WRQ请求完成
优点:
l 每个数据包大小固定,这样在内存分配处理的时候比较直接
l 实现简单
l 每个数据包都有确认机制,可以实现一定程度的可靠性
缺点:
l 传输效率不高
l 滑动窗口机制太简单,并且该窗口仅有一个包的大小
l 超时处理机制并不完善,RFC1350并没有给出详细的处理机制说明
具体如下图所示
5.
1.0定位前后端 bug
当我们操作页面端发现一个 bug 时,对业务充分熟悉且有足够经验的测试工程师可以直接判断是否前后端 bug;但无经验的不要慌,可通过 fiddler 抓取 request、response 数据,分析定位前后端 bug。
a: 查看请求的 http 状态码是否正确。例:若抓取到的请求返回的 http 状态码为 404,说明可能是前端 JS 提交了错误的地址,也可能是后端服务器没有对应地址的服务;若抓取到的请求返回的 http 状态码为 500,说明是后端服务器内部错误。
b: 查看请求的 http 状态码 200 但界面提示报错,则具体分析 request 及 response 信息,确认是否前端请求传参错误,若前端对应请求地址及传参都正确,则确认后端问题。
2.0 篡改数据
2.1 断点篡改请求数据
当我们在测试的时候,仅仅通过页面来发起请求进行测试,会因为前端的一些输入限制,导致测试不能覆盖所有场景。比如微信发送红包金额前端限制 0.01-200 元,那我们测试的时候,通过抓包,需要修改请求红包金额超过 200,验证服务器端是否正常处理超出数据。还比如我们很多项目都会涉及到支付功能,假设购买 1 件商品,在提交订单后、跳转到支付窗口之前,通过抓包能抓取到支付金额及数量的请求信息,并去篡改了支付金额或数量,然后以超低价格购买到多数量的高额商品。那就是严重 bug 了!
以上这些可以通过 fiddler 打断点,来修改请求数据。
1: 设置 Rules—>Automatic Breakpoints—>Before Requests
2: 然后在界面点击提交订单,看到请求前有红色禁行标识,说明设置了断点,请求被拦截了;
3: 点击该请求,在右侧 WebForms 视图下会看到请求发送的具体内容,修改金额后,再点击 Run to Completion 按钮。这样就完成了数据的篡改。那么在涉及到支付等重要场景时可利用这种方法来完成服务器安全性校验。一般我们可以要求开发在数据包中不要加入价格等敏感数据。
2.2 断点篡改响应数据
如果系统调用到第三方接口,根据第三方接口的不同返回结果进行不同的逻辑处理,当提供方不能配合我们来测试时;或者我们要从数据库获取
不同的数据在前端做展示;就都可以利用 fiddler 来篡改接口返回的数据,模拟我们需要的测试场景。
1: 设置 Rules—>Automatic Breakpoints—>After Responses
2: 页面发起请求,看见对应的请求图标有红色禁行标识,表示响应过程已设置断点
3: 修改响应数据,点击 Run to Completion 按钮。
断点设置除了以上这种方法外,补充另外 2 种断点设置方式:
- 输入命令进行断点
bpu :bpurl 的缩写。在命令输入框内输入:bpu 请求的 URL, 然后回车 , 则符合 url 条件的请求就会被中断。
bpm : 相当于 bpmethod。在命令输入框输入:bpm 请求方法,然后回车,则符合请求方法的请求就会被中断 。
bps : bpstatus 的缩写。在命令输入框输入:bps 响应状态码,然后回车,则符合状态码条件的请求就会被中断 。
bpafter :中断修改响应数据 。在命令输入框输入:bpafter url,然后回车,符合条件的 url 就会被中断。 - 点击左下角的一个小区域设置断点 。点一下是设置请求的断点,点两下是设置响应的断点。
3.0弱网模拟测试
Fiddler 中 Rules—>Cutomize Rules 打开 CustomRules.js 文档,搜索关键字 m_SimulateModem,找到如下文档位置
oSession[“request-trickle-delay”] = “300”; 看注释:上传 1KB 需要 300ms;转化上传速度:1Kb/0.3s = 3.3(KB/s)。
oSession[“response-trickle-delay”]同理。
弱网场景例如 2G 网络,2G 上行/下行速率约为 2.7、9.6kbps。每 1KB 数据,uploaded 约 2962 ms,downloaded 约 833 ms。
则按如下设置并保存,模拟 2G 弱网情况。
2: Rules->Performance-> 点击 Simulate Modem Speeds,开启弱网模拟。对比弱网设置前后,查看统计数据,可以看到弱网设
置后,访问网站慢了很多。
另:若想取消弱网设置,选中 Rules->Performance-> 点击 Simulate Modem Speeds,取消勾选即可。
4.0获取前端性能数据
1: 批量选择第一个请求和最后一个请求,使用 Statistics 页签,可获得整个页面加载所消耗的总体时间。从饼状图中可以清楚哪些请求耗时最多。
2: 通过 Timeline 分析资源加载时序图,可以看到页面上各个资源加载过程所需要的时间和先后顺序,有利于找出加载过程中比较耗时的文件资源。
以上可以帮助我们清楚耗时比较长的请求及文件资源,过长的可以提交给前端开发,针对性地进行性能优化。