Macaroon 是一个高效的反向代理测试套件,测试框架本身基于python2.7开发,方便跨平台移植;测试例使用格式化描述,做到编程语言无关性。使用 Macaroon能够简便快捷的完成测试场景的构造、线上失效案例的重建及被测软件(DUT)的功能、模块、协议一致性测试等。
目前公共测试环境已经搭建配置完成,测试用户名:Tester; 登录qa1机器:ssh -l Tester -p 22292 qa1.zymlinux.net, /home/Macaroon安装有Macaroon; 登录qa2机器:ssh -l Tester -p 22293 qa2.zymlinux.net,安装有ts、squid等方向代理软件; 如有需要,请联系宗仪(QQ:624740707)或怀财(QQ:262765996)添加长期用户权限;
i. 硬件准备:
两台机器A和B,A机器执行测试并同时作为client端与server端,B机器安装被测软件DUT--例如TrafficServer(Proxy).
ii.软件准备:
执行install.sh文件 Client&Server: Linux Python2.7 PyYaml包 Macaroon git DUT( Device Under Testing) : 被测软件(proxy or cache, 如TrafficServer, Swift等) Bind
iii. 配置DUT:
使从A机器client端发出的http请求能够通过DUT(proxy)后正确到达A机器server端 ----- *重要 例如: 在proxy上安装bind, 修改named的相关配置信息,使得named中存在一个域名可以指向A机器(Client的IP),使用dig <域名>确认是否成功.
iv. 修改config文件:
在macaroon目录下, 找到config.py文件,将_server的内容修改为proxy的ip或者hostname. _port修改为proxy提供的对外服务的端口, 例如:默认为80. 将DUT_Strart, DUT_Stop和DUT_Clean分别修改为proxy对应的启动, 停止和清理缓存命令.
v. 将macaroon目录下的agentsever.py 拷贝至proxy机器,并使用sudo权限执行:
sudo python agentserver.py
vi. 环境验证:
在client端执行httpmockserver.py:python httpmockserver.py 在proxy端执行curl命令,验证proxy到client的request是否可达: curl http://<proxyip>:<port>/ -H "Host:XXX:[port]"
更多问题参见:doc/Q&A
参见doc/Case_Design
i. 运行单个case
在根目录下执行如下命令: sh runcase.sh case文件
ii. 运行多个case
在根目录下执行如下命令:python runner.py -p your-case-path -s your-email 详见:python runner.py -h
i. 执行和调试单个测试例
sh runcase.sh <case文件>, case执行日志屏幕输出
ii. 执行多个case
执行日志输出至日志文件,./log/record_XXXX.log,按时间排序
i. case/下创建your case dir
ii. 拷贝case模板example/case_template_example.yaml至your case dir,并重命名
iii.编辑该文件
a. 文件头部添加case相关说明 b. 填写case步骤并准备对应步骤的数据块 c. 填充和完善每步的数据,如request header, response header, response body, 需要检查的header等 d. 保存和调试用例
参见./doc/文档
Macaroon 详细介绍 Macaroon 是一个高效的反向代理测试套件,测试框架本身基于python2.7开发,方便跨平台移植;测试例使用格式化描述,做到编程语言无关性。使用 Macaroon能够简便快捷的完成测试场景的构造、线上失效案例的重建及被测软件(DUT)的功能、模块、协议一致性测试等。 安装及使用 社区公共测试平台地址: 目前公共测试环境已经搭建配置完成,测试用户名:Tester;
什么是反向代理 反向代理(Reverse Proxy)方式是指用代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 举个例子,一个用户访问 http://www.example.com/readme,但是 www.example.com 上并不存在
反向代理是一个 V2Ray 的附加功能,可以把服务器端的流量向客户端转发,即逆向流量转发。 反向代理功能在 V2Ray 4.0+ 可用。目前处于测试阶段,可能会有一些问题。 反向代理的大致工作原理如下: 假设在主机 A 中有一个网页服务器,这台主机没有公网 IP,无法在公网上直接访问。另有一台主机 B,它可以由公网访问。现在我们需要把 B 作为入口,把流量从 B 转发到 A。 在主机 A 中配置一
主要内容:1. 简单的反向代理,2. 集群和平衡器,3. Balancer和BalancerMember配置,3. 故障转移,4. 均衡器管理器除了作为“基本”Web服务器,并为最终用户提供静态和动态内容之外,Apache httpd(以及大多数其他Web服务器)也可以充当反向代理服务器,也称为“网关” “服务器。 在这种情况下,httpd本身不生成或托管数据,而是由一个或多个后端服务器获取内容,后端服务器通常没有直接连接到外部网络。当httpd收到来自客户端的请求时,请求本身被代理到这些后端服
主要内容:1. 代理服务器介绍,2. 将请求传递给代理的服务器,3. 传递请求标头,4. 配置缓冲区,5. 选择传出IP地址本文介绍代理服务器的基本配置。 您将学习如何通过不同协议将NGINX请求传递给代理的服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应缓冲。 代理服务器的基本配置目录 代理服务器介绍 将请求传递给代理的服务器 传递请求标头 配置缓冲区 选择传出IP地址 1. 代理服务器介绍 代理通常用于在多个服务器之间分配负载,无缝地显示来自不同网站的内容,或者通过
1. 什么叫反向代理服务器? 要说反向代理服务器,先来说一般的代理服务器。代理就是受委托去做一些事。假如用户A委托B去做一些事,做完之后B告诉A结果。在代理服务器中也是一样的道理,用户A通过代理服务器B访问网站C(www.example.com),请求先到代理服务器B,B再转发请求到网站C,代理服务器B是真正访问网站C的,访问之后再把网站C的应答结果发给用户A。这样给用户A的感觉是C直接提供服务的
Nginx 是一个高性能的 HTTP 和反向代理服务器,代码完全用 C 实现,基于它的高性能以及诸多优点,我们可以把它设置为 hyperf 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 配置 Http 代理 # 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server