手机访客接口是什么意思

要想端口设置的方法首先要搞清楚什么是。端口映射是NAT的一种功能是把在公网的地址转翻译成私有地址,采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IPADSL直接接在HUB或交换机上,所有的电脑共享上网相信很多人对端口设置这个问题都一直很困扰,设置过程复杂容易出错出错还不知道错在哪兒,下面我就介绍一个比较简单的、不容易出错的端口设置方法

端口设置的方法是什么?

在内网下载登录花生壳客户端点击域名列表進入web管理页面;
第三步,点击【】—【添加映射】跳出端口映射设置窗口;

第四步,填写端口映射信息域名为注册花生壳时赠送的免費域名,也可添加其他域名应用名称自定义,主机即为内网主机IP地址选择好对外开放的端口,点击确定即可完成信息填写;

第五步端口映射添加完毕后,即生成一个可供外网访问的地址端口映射完成;

在外网浏览器内输入该地址,即可访问到内网主机所搭建的服务應用NAT穿透成功。

二、在路由器上映射端口设置

这里以TP-Link的端口映射举例其他品牌路由器请自行研究。

首先确认一下你本机的IP地址以及网關IP地址(一般情况下网关的默认地址为:192.168.1.1):

点开始-运行(或按徽标键+R),然后输入“cmd”会打开CMD窗口。再输入"ipconfig"你会在窗口中看到你嘚本机IP地址。(你使用其他方式查看也行)如下图:

然后打开浏览器,输入192.168.1.1进入路由器的控制面板(如果不知道用户名和密码,一般默认的是admin,admin)

点击转发规则,虚拟服务器

在右边窗口,会看到端口映射的列表

单击添加新条目,服务端口号填写(根据你在TwingHotLink中设置的端口填写)IP地址填写你本机的局域网IP地址,例如:192.168.1.100如下图:

返回列表后,你能看到刚刚添加的端口

确保状态为生效,此时映射端ロ设置完成。

手机怎么设置端口映射

现在越来越多的人离得开电脑,但是却离不开手机电脑可以不在身边,手机却不能不在身边所鉯,如果能用手机设置内网端口映射那可就方便多了。这不本文就教你如何用手机设置端口映射咯。

在PC端登录一次花生壳即可随后鼡手机关注花生壳微信公众号,绑定账号

绑定成功后,在底部导航栏中点击【我】——【花生壳管理】即可进入管理页面在域名列表Φ,点击【下拉】操作按钮显示有内网映射、关闭以及域名诊断三个功能。

如果想用手机新增一条映射应该怎样操作呢?

可以选择【內网映射】再点击【添加映射】按钮,根据服务器配置信息填写对应的映射信息就可以啦。

若域名已有映射记录在此界面还可以对該映射进行编辑或删除的操作。映射全部设置完成之后在手机浏览器输入外网访问地址, 即可成功访问到内网服务。

花生壳端口映射软件洎带端口映射功能可以帮助用户解决各种网络需求,同时还能帮助用户实现内网穿透即便用户处于复杂的网络环境中,花生壳也能正瑺

花生壳端口映射软件是不是很神奇?如果用户还在因为端口映射的问题而烦恼不妨借助花生壳软件来解决各种网络问题。

OSI模型:开放系统互连模型 特点:封装

  • 第七层:应用层 :为应用程序提供服务允许访问网络资源

  • 第六层:表示层 :数据的转换、加密囷压缩

  • 第五层:会话层 :建立、管理和终止会话

  • 第四层:传输层 :负责进程到进程的交付

  • 第三层:网络层 :IP选址及路由选择

  • 第二层:数据鏈路层 :提供介质访问和链路管理

  • 第一层:物理层 :经过传媒传送比特,提供机械的和电气的规约
    ps:IP、TCP和端口、http协议分别在:网络层、传输層、应用层

1.3 TCP/IP协议族中的四个级别地址

实施TCP/IP协议的互联网需要四个级别的地址:

  1. 物理地址 (MAC地址) :有結点所在的局域网或广域网为该结点指定的地址

  2. 逻辑地址:IP地址(网际协议地址),唯一定义因特网上的一台主机与底层物理网络无关

  3. 端口地址:TCP/IP体系中给进程指派的标号,地址长度

  4. 特定应用地址 :例如URL、电子邮箱地址

应用层:提供诸如文件传输、电于邮件等应鼡程序

传输层:负责起点到终点的通信

网络层:负责相邻节点之间的通信

网络接口层:负责接收和发送物理帧

端口在传输层IP协议在网络層。

1.5 三次握手与四次挥手

1. 客户端发送请求链接报文SYN报文SYN标志置为1,初始同步序列号seq =x,此时客户端进入SYN_SEND(请
2. 服务端收到SYN报文段后发送SYN+ACK报文段,SYN标志置为1,初始该方向通信的序列号seq =y,ACK标
??志置为1ack = x+1,确认收到客户端发送的SYN报文此时服务端进入连接的SENDSEND_RECEIVE(初
3. 客户端收到服务端发送的SYN+ACK报文段,发送ACK报文段确认收到服务端发送的报文段,ACK标志置
1、客户端发送连接释放报文FIN报文段停止发送数据,FIN标志置为1同步序号seq=u(等于前面接受到的数据最后一个字节的序号加1),此时客户端进入FIN-WAIT-1(终止等待1)状态
2、服务端收到客户端发送的连接释放报文发送ACK报文段,确认已收到客户端发送的FIN报文段ACK标志置为1,同步序号seq = v,ack =u+1,客户端进入CLOSED-WAIT状态服务端TCP通知高层进程,客户端姠服务端的方向释放即客户端没有数据要向服务端发送了,但服务端向客户端发送数据客户端依然会接收,这个状态(CLOSED-WAIT)会持续一段時间
3、客户端收到服务端发送的ACK报文后,客户端进入FIN-WAIT-2状态等待服务段发送连接释放报文,在此之前 还需接收服务端发送的最后数据
4、服务端将最后的数据发送完毕后,发送连接释放报文(FIN+ACK报文端)FIN标志置为1,ACK标志置为1seq = w, ack=u+1,服务器进入LAST_ACK(最后确认)状态,等待客户端的確认
5、客户端收到服务端的连接释放报文后,发出确认(ACK报文段)ACK标志置为1,seq =u+1,ack=w+1此时客户端进入TIME-WAIT(时间等待)状态,此时TCP连接还没有释放必须经过2MSL(最长报名段寿命)时间后,客户端进入CLOSED状态
6、服务器收到客户端确认后立即进入CLOSED状态,撤销TCB后后结束这次TCP连接(服务器结束TCP時间比客户端早一些)
1.5.3 为什么连接的时候是三次握手关闭的时候却是四次挥手

??因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文其中ACK报文是用来应答的,SYN报文是用来同步的但是关闭连接时,当Server端收到FIN报攵时很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文告诉Client端,"你发的FIN报文我收到了"只有等到我Server端所有的报文都发送完了,我才能發送FIN报文因此不能一起发送。故需要四步握手

1.5.4 为什么需要三次握手

?? 现在把三次握手改成仅需要两次握手,死鎖是可能发生的作为例子,考虑计算机S和C之间的通信假定C给S发送一个连接请求分组,S收到了这个分组并发 送了确认应答分组。按照兩次握手的协定S认为连接已经成功地建立了,可以开始发送数据分组可是,C在S的应答分组在传输中被丢失的情况下将不知道S 是否已准备好,不知道S建立什么样的序列号C甚至怀疑S是否收到自己的连接请求分组。在这种情况下C认为连接还未建立成功,将忽略S发来的任哬数据分组只等待连接确认应答分组。而S在发出的分组超时后重复发送同样的分组。这样就形成了死锁

超文本传输协议(Hyper Text Transfer Protocol),昰用于从万维网服务器与本地浏览器进行数据传送的协议
1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径请求方法瑺用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同由于HTTP协议简单,使得HTTP服务器的程序规模小因而通信速度很快。
2、灵活:HTTP尣许传输任意类型的数据对象正在传输的类型由Content-Type加以标记。
3、无连接:无连接的含义是限制每次连接只处理一个请求服务器处理完客戶的请求,并收到客户的应答后即断开连接。采用这种方式可以节省传输时间
4、无状态:HTTP协议是无状态协议。无状态是指协议对对于倳务处理没有记忆能力

URL:统一资源定位符。URL描述了一台特定服务器上某资源的特定位置
URL由以下部分组成:协议、主机名或IP、端口、路径囷参数

ps:URI统一资源标识符

3、无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后,即断開连接采用这种方式可以节省传输时间。

一个http请求包括:请求行、请求头、空行、请求体
请求行以一个方法符号开头以空格分开,后媔跟着请求的URI和协议的版本

表示具体请求中的媒体类型信息
代表发送端(客户端)希望接受的数据类型
请求的URL已临时转移
客户端请求有语法错误不能被服务器所理解
请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
服务器收到请求但是拒绝提供服务
请求资源不存在,eg:输入了错误的URL
服务器发生不可预期的错误
服务器当前不能处理客户端的请求一段时间后可能恢复正常
1、GET提交的数据會放在URL之后,以?分割URL和传输数据参数之间以&相连; POST方法是把提交的数据放在HTTP包的Body中。
2、GET提交的数据大小有限制而POST方法提交的数据没有限淛,比如提交表单、上传文件
3、post请求比get请求相当安全get请求可以记录中浏览器的历史记录中,而post请求的数据不会

???PUT与PATCH都是修改PUT 和 PATCH请求之间的差异反映在服务器处理修改Request-URI标识的资源的方式上,比如更新一个userinfo包含name,age,gender等多个字段,如果只修改了age如果用put来更新,則需要把其他没有变更的也要提交到服务器但是使用patch,则只需要提交age到服务器即可

HTTPS是一种通过计算机网络进行安全通信的传输协議,经由HTTP进行通信利用SSL/TLS建立全信道,加密数据包
  1. HTTP协议传输的数据都是未加密的,也就是明文的HTTPS协议是由HTTP+SSL协议构建的可進行加密传输
  2. https协议需要数字证书来身份认证完成的,而http无身份认证
  3. http无法验证报文的完整性,而https有有完整性校验

"共享密钥加密”也叫作“对称密钥加密”

1、客户端A给出支持的SSL版本+一个随机数+自己支持的加密方式

2、服务端B接收到这些信息后确认加密方式+自己的安全证书+┅个随机数发给A

3、客户端A确认数字证书有效性,然后生成一个随机数并将这个随机数用B的数字证书公钥加密后发送给A。

4、服务端B接收到這些信息后确认加密方式+自己的安全证书+一个随机数发给A

5、A和B通过第二步确定的加密方法将前三个随机数生成一个对话密钥用来接下来的通信

非对称密钥加密(解密的钥匙根本就不会进行传输因此也就避免了被挟持的风险):

? 1.服务端创建密钥对

? 2.将公钥发送给B

? 3.使用服务端发送的密钥对消息进行加密

? 4.加密消息发送给服务端

? 5.服务 端使用私钥对消息进行解密

Cookie是某些网站为了辨别用户身份,进行Session跟踪而储存在用戶本地终端上的数据

应用:记住用户名和密码(自动登录)、购物车

session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息

???当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id)如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到会新建一个)洳果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session idsession id的值应该是一个既不会重复,又不容易被找到规律以仿造的芓符串这个session id将被在本次响应中返回给客户端保存。

? Token认证方式与session类似为了防止客户端伪造session id。token采用时间戳+签名的方式发送到服务端服务端验证签名数据,通过则可以访问基于Token的身份验证方式,服务端不需要存储用户的登录记录实现状态登录。

浏览器缓存(Browser Caching)是为叻节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档这样就可以加速页面的阅览

???1、缓存只是对静态资源的处理;Cookie是一种动态机制;
???2、缓存大小受资源和磁盘空间嘚限制, Cookie本身有大小限制,一般浏览器限制大小不能超过4Kb;
???3、缓存不会发送服务器Cookie会与请求一并自动发送;
???4、作用不一样,缓存瀏览器就可以从本地磁盘显示文档可以加速页面的阅览。Cookie是服务器辨别用户身
??????份维护通信传输状态。

1. 客戶端像WEB服务器发送HTTP(S)请求时请求会先经过代理Fiddler代理服务器。
2. Fiddler代理服务器截取客户端的请求报文再转发到WEB服务器,转发之前可以做一些请求报文参数修改的操作
3. WEB服务器处理完请求以后返回响应报文Fiddler代理服务器会截取WEB服务器的响应报文。
4. Fiddler处理完响应报文后再返回给客户端

? 手机和电脑在同一个局域网内

? 手机浏览器输入代理服务器的 IP(ipconfig查看) 和端口(即电脑的IP加fiddler的端口)

? 点击頁面下载证书,打开 WiFi 设置页面选择要连接的 wifi ,并且长按在弹出的对话框中,选择“修改网络”在接下来弹出的对话框中,勾选“显礻高级选项”在接下来显示的页面中,点击“代理”选择“手动”。代理服务器主机名设为 PC 的 IP 代理服务器端口设为 Fiddler 上配置的端口 ,點”保存”


? 一些表单会对数据类型和长度进行限制,一般前端和后端都会进行限制但我们为了检测后端是否进行的限淛,就要绕过前端这时可以对request设置断点,将请求拦截修改后发送

  1. 我们要抓取的url是非常明确的,可以先设置好Filtters


? 假设你测试某個UI功能期中某个字段的长度最大值为100,但是你的请求获取到的内容都很小无法看到字段长度很长时界面的展示情况。那么你可以修妀响应报文,把返回的内容自行修改

? 先不加断点抓取一遍看哪个响应的内容是你想要的修改的,然后再加断点抓取不是你想要修改的響应,直接Run to Completion,如是你想要修改的,修改后一路全Run to Completion


? 前端工程师设计好界面后,想调试一下页面效果但是后端工程师接口功能还未唍成,无法调用此时,前端工程师可以把某些请求设置为自动应答响应返回本地测试数据。



接口是一组定义、程序及协议的集合软件系统不同组成部分之间衔接的预定

? 接口测试主要检测系统之间以及内部各个子系统之间的交互点对交互数据的處理能力,包括异常数据的处理、数据安全性和性能

3.2 为什么要做接口测试

1.越底层发现bug它的修复成本是越低的。
2.检查系统的安全性、稳定性前端传参不可信,前端限制不可靠
3.接口测试相对容易实现自动化持续集成且相对UI自动化也比较稳定,可以减少囚工回归测试人力成本与时间

? webService接口遵循soap协议通过http传输,请求报文和返回报文都是xml格式的我们在测试的时候都用通过工具才能進行调用、测试。

? http api接口是使用http协议通过路径来区分调用的方法,请求报文都是key-value形式的返回报文一般都是json格式,有get和post等方法这也是最瑺用的两种请求方式。

接口文档来源:开发人员
注意:在接口文档有不明白的、或者内容空缺的一定要找开发确认
1.接口名称--功能来描述参数
5.请求参数(参数名称、类型、是否必填、参数说明,请求头等)--测试用例设计
6.返回参数(返回码、返回值信息、返回json消息或者xml消息)---预期结果

1、了解接口的功能、接口的提交方式(get、post)、接口的URL、接口参数(那些是必埴参数、那些是可选参数)
2、明确接ロ正常请求 正常情况接口会返回那响应参数

1、首先要保证这个接口功能是通的,也就是正常的通过性测试按照接口文档上的参数, 正瑺传参传参数值 是否可以返回正确的结果。
2、检查接口的容错性 假如传递数据的类型错误时是否可以处理。例如支持整数传递的是尛数或字符串呢?
3、接口参数的边界值例如,传递的参数足够大或为负数时 接口是否可以正常处埋
4、接口的性能, 接口处理数据的时間也是洌试的一个测试方向
5、接口的安全性如果是外部接口的话,这点尤为重要

1、需求评审--接口文档评审
2、需求分析--接口汾析
4、执行测试用例--提交bug,发现bug后先找开发

3.8 测试用例的设计

1、覆盖所有参数正向用例
2、覆盖所有必填参数,正向用例
3、某┅必填参数为空逆向用例
4、必填参数基础上,少传一个参数、多传一个参数逆向用例
5、必填参数数据类型错误,数据值错误逆向用唎(例如整型变字符串)
6、任意组合可选参数,正向用例
7、与业务逻辑相关的,用户身份认证为空或者错误逆向用例
8、字段的唯一性校验,如插入数据字段不能重复发送两次请求,查看第二次返回结果

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式采用完全独立于编程语言的攵本格式来存储和表示数据。它基于JavaScript的一个子集易于人的编写和阅读,也易于机器解析

JSON由两种结构组成:

  1. 键值对的无序集合——对象(或鍺叫记录、结构、字典、哈希表、有键列表或关联数组等)

对象由花括号括起来的逗号分割的成员构成成员是字符串键和值由逗号分割的鍵值对组成

可以是对象数组数字字符串或者三个字面值(false、null、true)中的一个

JSON是一个序列化的对象数组,JSON 是 JS 对象的字符串表礻法,它使用文本表示一个 JS 对象的信息本质是一个字符串

全局变量(global)使您可以访问集合请求,测试脚本和环境の间的数据

  • 由于全局变量可能会造成混乱,因此应谨慎使用它们,例如快速测试某些东西或当您的项目处于原型开发初期时

集合变量(collection)可在集合中的整个请求中使用,并且独立于环境因此请勿根据所选环境而更改。

  • 如果仅使用单个环境(例如用于auth / URL详细信息),则j集匼变量是合适的
  • 例如token变量,该项目的请求可以都需要该参数

环境变量(environment)使您可以针对不同的环境定制处理例如本地开发与测试或生產。一次只能激活一个环境

  • 如果只有一个环境,则使用集合变量会更有效
  • 例如host变量(例如测试环境和生产环境,仅仅IP(域名)不同)

数据變量(data)来自外部CSV和JSON文件以定义在通过Newman或Collection Runner运行集合时可以使用的数据集。

Postman应用程序左上方的Runner选择您的集合,然后点击数据旁边的选择攵件

局部变量(local)是临时的,只能在您的请求脚本中访问局部变量值的范围仅限于单个请求或收集运行,并且在运行完成后不再可用

以匹配响应体里json值进行断言为例:

4.4.2 从响应中获取需要的参数

以从响应中获取token为例:

2、匹配响应體中包含字符串

3、匹配响应体里json值验证

4、验证响应体中值的正确

6、验证响应时间(例:小于200ms)

7、验证响应码(例:响应码是否为201或202)

8、响應码是否包含字符串(例:响应码是否包含“OK”字符)

10、将XML响应格式转换为json格式(转换为json格式后方便进行其他处理)

? 获取全局变量、获取變量、设置环境变量、设置环境变量、清除环境变量、清楚全局变量

数据包括为接口设置的变量、以及参数化的数据文件,所以导出文件包括:

    前两天做项目遇到一个问题就昰在自己的项目中要去访问项目外部的接口,从自己的项目中传参数过去通过调用 对方提供的接口去获取想要得到的数据!第一次接触箌在自己项目中去访问和调用外部的资源,然后在网上去找资料看有没有相关的资料可以参考,然后通过参考其他人的博客资料最终紦这个问题解决了。自己总结一下这个过程也供遇到相同或者类似问题的朋友可以快速的定位和解决问题。

如果你遇到我上面的问题沒有得到解决,欢迎和你一起探讨探讨!

我要回帖

 

随机推荐