2023备战金三银四,Python自动化软件测试面试宝典合集(五)
接上篇
八、抓包与网络协议
8.1 抓包工具怎么用
我原来的公司对于抓包这块,在 App 的测试用得比较多。我们会使用 fiddler 抓取数据检查结果,定
位问题,测试安全,制造弱网环境;
如:抓取数据通过查看请求数据,请求行,请求报头,请求正文,信息是否正确去检查结果,
如果是以 4 开头的话就有可能是前端问题一般我会到前端排查,以 5 开头就有可能是后端
问题我就会到后端排查;如果是 200 的话,就需要检查请求行,请求报头,请求正文是否正确,
如果请求错误就是前端问题,如果请求没有问题,那就是后端问题,看后端问题服务器运行日志,
是否包含 exception,error 或根据时间点去看日志。
测试安全,抓取数据查看用户的感敏信息有没有进行加密显示,还有就是把发送请求的数据篡改是否
成功。
弱网环境,诵过 fiddler 工具选择 Customize Ruels...(Ctr+R)调出定义脚本编辑器找到
“if (m_SimulateModem)”设置上行下行网速,然后把
Rules-> Performance-> Simulate Modem Speeds 选中生效
常用抓包工具有:浏览器中 F12, fiddler, Charles(青花瓷), wireshark
8.2 如何抓取 https 的包
1、设置 Tools=> Option=>勾选 Decrypt Https traffic=>勾选 lgnore server
certificate errors(unsafe)
2、打开 https 网页就可以成功抓取了
3、还可以 Fiddler 添加过滤器(Filters):只抓取指定 iP 的数据
8.3 如何抓取手机的包
1、开启 Fiddler 的远程连接
Fiddler 主菜单 Toos- Options-> Connections>勾选 Allow remote computers to
2、重启 Fiddler,更新刚开启的远程配置
3、然后手机和电脑需要在同一个局域网,抓取 http 手机设置代理就可以,要抓取 https 包,手机需
要安装一个 fiddler 证书
1、fder 工具生成一个证书,发送手机上面安装
2、通过手机浏览器打开安装证书界面 192.168.3.197:8888
ip 地址是用 fiddler 工具的电脑的 ip 地址,fiddler 工具端口号的 8888
点击下载证书,会提示,输入手机锁屏密码
4、给证书命名,名字随意,其他默认就 ok
5、点击确定,安装成功,然后就可以抓取 https 的包了
8.4 网络协议了解多少?
原来我们用得比较多的协议是 http 和 https 以及 tcp 协议
http 和 https 都是超文本协议,浏览器发送数据请求基本用的都是他们,不同的是 https
在 http 的基础上增加了 ssl 加密协议,http 的默认端口是 80,http:的默认端口是 443,
https 收费,http 免费。
tcp 协议的话,作用在传输层,在发送请求前会有三次握手,是面向连接的协议,传输过程比较可靠
udp 协议的话,作用在传输层,面向非连接协议,传输过程相对 tcp 不可靠,传输大量数据
8.5 请求方式有哪些?
常用:get、post
不常用:delete、put、head、option
8.6 get 跟 post 请求的区别
1)get 请求的参数有长度限制,post 没有
2)get 请求参数在 url 上传输,post 的参数在请求正文中传输。post 比 get 传输更安全
3)get 只能接收 ascall 码参数,而 post 没有限制
4)get 请求的时候,只请求一次,而 post 请求两次,第一发送请求头相关信息,第二次
再发送请求正文,(只有部分浏览器 2 次请求)
8.7 http 跟 https 的区别
1.https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用
2.http 是超文本传输协议,信息是明文传输 https 则是具有安全性的 ssl 加密传输协议
3.http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443
4.http 的连接很简单,是无状态的;Https 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认
证的网络协议,比 http 协议安全。
8.8 为什么要使用 cookie 和 session:http 是无状态协议
第一次登录,发送用户信息给到服务器,服务器把用户信息保存在 session 中服务器响应数据给客户
端,响应数据中有包含 session 的先关用户信息
客户端接收到服务器 session 信息,把 session 中相关的用户信息保存在 cookie 中
第二次登录,客户端发送请求,并携带 cookie,服务端可以直接验证 cookie 值,如果用户已经登录
过,可以免登录
8.9 cookie 跟 session 的区别
在网站中 http 请求是无状态的,也就是说即使第一次和服务器连接后并且登录成功后,
第二次请求服务器依然不能知道当前请求是哪个用户,cookie 的出现就是为了解决这个问题,
第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次
请求的时候,就会自动的把上次请求存储的 cookie 数据自动的携带给服务器,服务器通过浏览器携
带的数据就能判断当前用户是哪个了。cookie 存储的数据量有限,不同的浏览器有不同的存储大小,
但一般不超过 4KB,因此使用 cookie 只能存储一些小量的数据。
session 和 cookie 的作用有点类似,都是为了存储用户相关的信息,不同的是,cookie 是存储在本
地浏览器,而 session 存储在服务器.存储在服务器的数据会更加的安全,不容易被窃取。但存储在
服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些 session 信息
还是绰绰有余的
8.10 OSI 七层网络模型
(1)参考模型:只是提供给生产商或者软件开发商参考的模型
(2)开发系统互联
(3)有七层
8.11 TCP 模型
有四层:
应用层 (telnet.stp.htp),传输层( CP UDP)、网络层,中数据链路层
8.12 TCP 和 UDP 的区别?
(1)TCP 面向连接、而 UDP 面向非连接
(2)TCP 相对 UDP 更可靠
(3)TCP 应用场景,用于传输少量数据,而 UDP 用于传输大量数据
(4)TCP 传输的数据相对 UDP 慢
8.13 tcp 的三次握手是怎么实现的?
(1)客户端给服务器发送报文 syn=1 和序列号 Seq=x
(2)服务器接收到客户端的请求,服务器响应 syn=1,ack=x+1,seq=y
(3)客户端接收到服务器的响应,返回给服务器,ack=y+1,seq=z
8.14 http 协议包含哪些内容
(1)请求信息
1)请求行:请求方式、请求地址 http 版本 1.1
2)请求头
HTTP 消息报头包括普通报头、请求报头、响应报头、实体报头
Cache- Control:no- cache 缓存
Connection:close/keep-aive 是否关闭或者保持连接
Accept-Charset:ios-859-1 字符集
Accept-Encoding:gzip.deflate 编码格式
Accept-Language:zh-cn 语言
Authorization:服务器授权验证
Host:主机
User-Agent:
Location:重定向
Server:服务器版本信息
Content-Encoding:实体报头的编码格式
请求正文
data
(2)响应信息
1)状态行:http 版本、状态码、状态信息
2)响应头:跟请求头一样
响应正文
8.15 http 状态码有哪些
1xx 需要继续发送请求
2xx 成功
3xx 需要重定向
4xx 客户端请求数据有误
5xx 服务器响应错误
6xx 服务器响应错误
常见状态码:400、404、200、500、302、501、504
101 服务器根据客户端的请求切换协议,只能切换到更高级的协议,
例如,切换到 HTTP 的新版本协议
102(代表处理将被继续执行)由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行
2 开头这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。
200(成功)服务器已成功处理了请求,通常,这表示服务器提供了请求的网页
201(已创建)请求成功并且服务器创建了新的资源
202(已接受)服务器已接受请求,但尚未处理
203(非授权信息)服务器已成功处理了请求,但返回的信息可能来自另一来源
204(无内容)服务器成功处理了请求,但没有返回任何内容
205(重置内容)服务器成功处理了请求,但没有返回任何内容
206(部分内容)服务器成功处理了部分 GET 请求
207(代表之后的消息体将是一个 XML 消息),并且可能依照之前子请求数量的不同,包含
系列独立的响应代码
3 开头(请求被重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。
300(多种选择)针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,
或提供操作列表供请求者选择。
301(永久移动)请求的网页已永久移动到新位置.服务器返回此响应(对 GET 或 HEAD 请求的响应)时,
会自动将请求者转到新位置
302(临时移动)服务器目前从不同位置的网页响应请求,
但请求者应继续使用原有位置来进行以后的请求
303(查看其他位置)请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304(未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容
305(使用代理)请求者只能使用代理访问请求的网页。如果服务器返回此响应,
还表示请求者应使用代理。
307(临时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后
的请求
4 开头(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
400(错误请求)服务器不理解请求的语法
401(未授权)请求要求身份验证,对于需要登录的网页,服务器可能返回此响应
403(禁止)服务器拒绝请求
404(未找到)服务器找不到请求的网页
405(方法禁用)禁用请求中指定的方法
406(不接受)无法使用请求的内容特性响应请求的网页
407(需要代理授权)此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理
408(请求超时)服务器等候请求时发生超时
409(冲突)服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息
410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。
411(需要有效长度)服务器不接受不含有效内容长度标头字段的请求
412(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件
413(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力
414(请求的 URL 过长)请求的 URL(通常为网址)过长,服务器无法处理
415(不支持的媒体类型)请求的格式不受请求页面的支持
416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态代码
417(未满足期望值)服务器未满足期望请求标头字段的要求
5 开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误
这些错误可能是服务器本身的错误,而不是请求出错
500(服务器内部错误)服务器遇到错误,无法完成请求
501(尚未实施)服务器不具备完成请求的功能,例如,服务器无法识别请求方法时可能会返回此代码。
502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应,(比如:nginx 里
设置了反向代理,自己代理给自己,形成了死循环,造成大量的访问日志,每秒上万)
503(服务不可用)服务器目前无法使用(由于超载或停机维护),通常,这只是暂时状态。
504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求
505(HTTP 版本不受支持)服务器不支持请求中所用的 HTTP 协议版本
持续更新,敬请期待。
相关文章:
2023备战金三银四,Python自动化软件测试面试宝典合集(五)
接上篇八、抓包与网络协议8.1 抓包工具怎么用 我原来的公司对于抓包这块,在 App 的测试用得比较多。我们会使用 fiddler 抓取数据检查结果,定位问题,测试安全,制造弱网环境;如:抓取数据通过查看请求数据,请…...
SpringDI自动装配BeanSpring注解配置和Java配置类
依赖注入 上篇博客已经提到了DI注入方式的构造器注入,下面采用set方式进行注入 基于set方法注入 public class User {private String name;private Address address;private String[] books;private List<String> hobbys;private Map<String,String>…...
2月面经:真可惜...拿了小米的offer,字节却惨挂在三面
我是2月份参加字节跳动和华为的面试的,虽然我只拿下了小米的offer,但是我自己也满足了,想把经验分享出来,进而帮助更多跟我一样想进大厂的同行朋友们,希望大家可以拿到理想offer。 自我介绍 我是16年从南京工业大学毕…...
磐云PY-B8 网页注入
文章目录1.使用渗透机场景windows7中火狐浏览器访问服务器场景中的get.php,根据页面回显获取Flag并提交;2.使用渗透机场景windows7中火狐浏览器访问服务器场景中的post.php,根据页面回显获取Flag并提交;3.使用渗透机场景windows7中…...
多传感器融合定位十-基于滤波的融合方法Ⅰ其二
多传感器融合定位十-基于滤波的融合方法Ⅰ其二3. 滤波器基本原理3.1 状态估计模型3.2 贝叶斯滤波3.3 卡尔曼滤波(KF)推导3.4 扩展卡尔曼滤波(EKF)推导3.5 迭代扩展卡尔曼滤波(IEKF)推导4. 基于滤波器的融合4.1 状态方程4.2 观测方程4.3 构建滤波器4.4 Kalman 滤波实际使用流程4…...
Java集合面试题:HashMap源码分析
文章目录一、HashMap源码二、HashMap数据结构模型图三、HashMap中如何确定元素位置四、关于equals与hashCode函数的重写五、阅读源码基本属性参考文章:史上最详细的 JDK 1.8 HashMap 源码解析参考文章:Hash详解参考文章:hashCode源码分析参考…...
华为OD机试 - 数组合并(Python),真题含思路
数组合并 题目 现在有多组整数数组, 需要将他们合并成一个新的数组。 合并规则, 从每个数组里按顺序取出固定长度的内容合并到新的数组中, 取完的内容会删除掉, 如果该行不足固定长度或者已经为空, 则直接取出剩余部分的内容放到新的数组中, 继续下一行。 如样例 1, 获得长度…...
Vue2创建移动端项目
一、Vscode Vscode 下载安装以及常用的插件 1、Vscode 下载 下载地址:Vscode 中文语言插件 搜索 chinese 主题 Atom 主题 文件图标主题 搜索 icon 源代码管理插件GitLens 搜索 GitLens Live Server _本地服务器 搜索 Live Server Prettier - Code formatt…...
PorterDuffXfermode与圆角图片
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 圆角图片 在项目开发中,我们常用到这样的功能:显示圆角图片。 这个是咋做的呢?我们来瞅瞅其中一种实现方式 /*** param bitmap 原图* p…...
如何准备大学生电子设计竞赛
大学生电子设计竞赛难度中上,一般有好几个类型题目可以选择,参赛者可以根据自己团队的能力、优势去选择合适自己的题目,灵活自主空间较大。参赛的同学们可以在暑假好好学习相关内容,把往年的题目拿来练练手。这个比赛含金量还是有…...
【Java容器(jdk17)】ArrayList深入源码,就是这么简单
ArrayList深入源码一、ArrayList源码解析1. MIXIN 的混入2. 属性说明3. 构造方法4. 其他方法(核心)iterator 和 listIterator 方法add方法remove 方法sort方法其他二、ArrayList 为什么是线程不安全的?体现哪些方面呢?三、ArrayLi…...
【Java 面试合集】简述下Java的三个特性 以及项目中的应用
简述下Java的特征 以及项目中的应用 1. 概述 上述截图中就是Java的三大特性,以及特性的实现方案。接下来就每个点展开来说说 2. 封装 满足:隐藏实现细节,公开使用方法 的都可以理解为是封装 而实现封装的有利手段就是权限修饰符了。可以根据…...
git基本概念图示【学习】
基本概念工作区(Working Directory)就是你在电脑里能看到的目录,比如名字为 gafish.github.com 的文件夹就是一个工作区本地版本库(Local Repository)工作区有一个隐藏目录 .git,这个不算工作区,…...
微前端qiankun架构 (基于vue2实现)使用教程
工具使用版本 node --> 16vue/cli --> 5 创建文件 创建文件夹qiankun-test。 使用vue脚手架创建主应用main和子应用dev 主应用 安装 qiankun: yarn add qiankun 或者 npm i qiankun -S 使用qiankun: 在 utils 内创建 微应用文件夹 microApp,在该文件夹…...
记录robosense RS-LIDAR-16使用过程3
一、wireshark抓包保存pcap文件并解析ubuntu18安装wireshark,参考下面csdn教程,官网教程我看的一脸蒙(可能英语太差)https://blog.csdn.net/weixin_46048542/article/details/121730448?spm1001.2101.3001.6650.2&utm_medium…...
【博学谷学习记录】大数据课程-学习第七周总结
Hadoop配置文件修改 Hadoop安装主要就是配置文件的修改,一般在主节点进行修改,完毕后scp下发给其他各个从节点机器 文件中设置的是Hadoop运行时需要的环境变量。JAVA_HOME是必须设置的,即使我们当前的系统中设置了JAVA_HOME,它也…...
154、【动态规划】leetcode ——494. 目标和:回溯法+动态规划(C++版本)
题目描述 原题链接:494. 目标和 解题思路 (1)回溯法 本题的特点是nums中每个元素只能使用一次,分别试探加上nums[index]和减去nums[index],然后递归的遍历下一个元素index 1。 class Solution { public:int res …...
MySQL-窗口函数
窗口函数概念常用窗口函数聚合窗口函数专用窗口函数语法OVER子句window_specwindow_name (命名窗口)partition_clause 分区order_clause 排序frame_clause 范围 (指定窗口大小)使用限制练习准备概念 窗口函数对一组查询执行类似于聚合的操作。然而&#…...
【C++设计模式】学习笔记(1):面向对象设计原则
目录 简介面向对象设计原则(1)依赖倒置原则(DIP)(2)开放封闭原则(OCP)(3)单一职责原则(SRP)(4)Liskov替换原则(LSP)(5)接口隔离原则(ISP)(6)优先使用对象组合,而不是类继承(7)封装变化点(8)针对接口编程,而不是针对实现编程结语简介 Hello! 非常感谢您阅读海…...
[测开篇]设计测试用例的方法如何正确描述Bug
文章目录为什么测试人员要写测试用例?怎样设计测试用例?(总的方面)1.基于需求设计测试用例(总的方面) 2.页面(总的方面) 3.非功能性测试(具体方面) 4.1 等…...
设计模式学习笔记--单例、建造者、适配器、装饰、外观、组合
以下内容根据以下网址及相关视频整理:Android设计模式之单例模式_谬谬清不给我取名字的博客-CSDN博客_android 单例模式 Android设计模式--单例模式的六种实现和单例模式讲解Volatile与Synchronized相关的并发_龙腾腾的博客-CSDN博客_android 单例 volatile java …...
English Learning - Day5 L1考前复习 2023.2.10 周五
English Learning - Day5 L1考前复习 2023.2.10 周五1 单选题:She has the face _________.2 单选题: The goals ________ he fought all his life no longer seemed important to him.3 单选题:Sales director is a position ______ communi…...
C. Prepend and Append
time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Timur initially had a binary string†† s� (possibly of length 00). He performed the following operation several (possibly zero)…...
javassm超市在线配送管理系统
为了解决用户便捷地在网上购物,本文设计和开发了一个超市管理系统。本系统是基于web架构设计,SSM框架 ,使用Mysql数据库管理,综合采用JSP模式来完成系统的相关功能。主要实现了管理员与用户的注册与登陆,个人中心、用户…...
Scratch少儿编程案例-多模式贪吃蛇(无尽和计时)
专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...
谷歌蜘蛛池怎么搭建?Google蜘蛛池可以帮助谷歌排名吗?
本文主要分享关于谷歌蜘蛛池的搭建疑问,以及Google对谷歌排名的影响到底有多大。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 谷歌蜘蛛池怎么搭建? 答案是:需要一个内链外链体系复杂的站群系统…...
Kubernetes集群-部署Java项目
Kubernetes集群-部署Java项目(SSG) k8s部署项目java流程图 第一步 打包制作镜像 打包 java源码: application.properties #在有pom.xml的路径下执行 mvn clean package制作镜像: 将刚才打包后的文件夹传到,装有dock…...
English Learning - Day54 作业打卡 2023.2.8 周三
English Learning - Day54 作业打卡 2023.2.8 周三引言1. 就算你不喜欢喝酒,也请尝一杯吧。2. 便纵有千种风情,更与何人说?——柳永《雨霖铃》 (来,挑战一下古诗词)3. 虽然忙,我也要参加会议。4. 无论发生什么…...
【Unity题】 1.矩阵旋转,欧拉旋转,四元数旋转各自的优缺点。2.StringBuilder和String的区别
1.矩阵旋转,欧拉旋转,四元数旋转各自的优缺点 矩阵旋转,欧拉旋转,四元数旋转是三种不同的旋转表示方法,下面是它们各自的优缺点: 矩阵旋转: 优点: 1.可以方便地实现复合旋转&…...
【C++面试问答】搞清楚深拷贝与浅拷贝的区别
问题 深拷贝和浅拷贝的区别是面试中的常见问题之一,对于不同的编程语言,这个问题的回答可能稍有差别,下面我们就来探索一下它们之间的异同吧。 先来看看在JavaScript对象的深拷贝与浅拷贝的区别: 浅拷贝:只是复制了…...
常用网站设置/东莞网站推广营销网站设计
2019独角兽企业重金招聘Python工程师标准>>> http://serverfault.com/questions/180332/python-mysqldb-mysql-server-gone-away-cant-reconnect 一个接口:访问数据库获取大量静态数据, 但是静态数据是正确获取的。之后出现run away错误。 貌…...
传销教你做网站/廊坊seo推广公司
1、var 众所周知var用来定义变量 如 undefined,number,string,bool,array,function,object,null。 但有时候为了省事,就会出现一些内存泄露的情况: function fun(){ var ab1;//为了省事直接赋值 }fun(); console.log(a);//undefined; console.log(b);//1…...
百度收录最好的网站/手机怎么在百度上发布信息
NPM酷库,每天两分钟,了解一个流行NPM库。 昨天我们了解到ip库用来做IP地址计算处理,在脉冲云的集群管理中,我们使用了另外一个和网络地址相关的库:netmask,用来计算网络掩码。 通过netmask,我们…...
建网站和建网页的区别/成人短期技能培训
RabbitMQ集群概述通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收。这些节点通过 RabbitMQ HA 队列&…...
江苏住房和城乡建设厅官方网站6/百度推广怎么优化排名
个人测试结论备忘 环境:ubuntu server 9.04 nginxmysqlfastcgi 1、单独Zend Optimizer优化: 测试结果很不稳定,偏差很大,加速并不多。 2、单独eAccelerator(做为Zend扩展)优化: 测试结果稳定&a…...
短视频网站平台怎么做的/完整的品牌推广方案
22.1 高级函数 22.1.1 安全的类型检测 22.1.2 作用域安全的构造函数 22.1.3 惰性载入函数 22.1.4 函数绑定 22.1.5 函数柯里化22.2 防篡改对象 22.2.1 不可扩展对象 22.2.2 密封的对象 22.2.3 冻结的对象22.3 高级定时器 22.3.1 重复的定时器 22…...