如何正确设置Proxy Switchy

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确设置Proxy Switchy相关的知识,希望对你有一定的参考价值。

如何正确设置Proxy Switchy!
  第一步,到 chrome扩展网站下载最新的扩展程序(废话 PS:现在官网上貌似有汉化的
  第二布,可以看到chrome右上角出现对应图标,左键点击,勾选Auto Switch Mode,也就是自动模式啦,当然也是有手动模式的,这个下面再讲。先上图:
  第三步,点击上图中的Options设置选项,由于Switchy仅仅是用来切换浏览网络的代理,所以要事先设置好真正的代理工具,比如tor,SSH,puff,GappProxy等等……我采用SSH与GappProxy两种方法来讲吧,选择Proxy Profiles,点击New Profile增加配置,Profile Name自定,代理proxy填127.0.0.1,端口Port填代理工具设置的那一个,SSH一般默认是7070,GappProxy默认是8000。如果端口重叠的话,需要在代理工具里修改。接着上图
  SSH方式需要选择SOCKS Host, 勾选SOCKS v5。GappProxy等其他方式选HTTP Proxy就行了,勾选Use the same proxy server for all protocols。
参考技术A 最近刚刚接触到RobotFramework,发现这个工具倒是可以满足我的要求,而且可以结合seleniumLibrary,用来做web的自动化测试相当不错。之前我也接触过selenium,不过感觉那个工具更贴近开发人员使用,有了robotFramework之后,感觉这个工具相当强大,而且是贴近测试人员的。之所以说强大,主要是这些测试脚本都可以用文本格式保存(如txt/html等)

==安装篇==
如果有想学的朋友可以自己下载以下文件安装(Google-code里可以找到大部分的安装文件):
这篇文章的内容比较旧了,最新的安装指南请查看 更新篇
python-2.7.1.msi(首先要有python,请选择将Python加入Path)
wxPython2.8-win32-unicode-2.8.11.0-py27.exe(wxPython,必须要的)
robotframework-2.6.0.win32.exe(然后装robot的Framework)
robotframework-ride-0.38.1.win32.exe(robotFramework的IDE,很不错)
robotframework-seleniumlibrary-2.8.win32.exe(seleniumLibrary)

安装成功后
执行[PythonDir]\Scripts\ride.py
看到界面就是安装成功了。

如果需要AutoIt支持就下载下面2个东东。
AutoItLibrary-1.1
pywin32-216.win32-py2.7.exe

==入门篇==
安装完成了,这个框架可以说是基于keyword的操作,按F5可以看到所有加载的keyword。
首先新增一个project

然后新增suite

然后新增test case,接着在suite层级add library,把selenium library加进来,添加后按F5检验是否添加成功,如图

OK,继续在suite的setting里设置suite启动和结束的keyword,即Start Selenium Server和Stop Selenium Server,他会在运行时帮助我们自动启动seleniumserver。

接下来在test case里添加一个步骤,open browser(一般用selenium做web测试都要用这个方法来打开浏览器),添加后关键字变成蓝色表示找到关键字了,否则可能是拼写错误或者没有加载相应的library。红色表示有一个必选参数要给定输入值,具体参数可以看F5里的keyword说明。

输入参数,第二个参数默认是firefox,不过我没装,就用ie吧。

以上只是一个简单的例子,没有详细说明每个步骤的操作,只是初步介绍。后续再详细介绍

expressjs设置tls连接https nginx服务器请求

如何设置expressjs的请求以正确识别与https nginx服务器的TLS连接,以便我可以通过getPeerCertificate执行身份验证?

这是我的nginx配置将请求转移到expressjs api

location /api {

    proxy_pass http://10.88.132.14:4337/api;     

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;  
}  
答案

您需要传递SSL令牌,然后手动解码它。你通过添加X-SSL-CERT$ssl_client_escaped_cert传递它。确保您使用的是Nginx 1.13或更高版本,因为1.12中不存在$ssl_client_escaped_cert

location /api {
    proxy_pass http://10.88.132.14:4337/api;     
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection 'upgrade';
    proxy_set_header   Host $host;
    proxy_cache_bypass $http_upgrade;  
    proxy_set_header    X-SSL-CERT $ssl_client_escaped_cert;
}

现在你不能使用getPeerCertifice(),因为这需要完整的SSL连接。相反,您使用x-ssl-cert包解码上面的x509标头:

let cert = req.headers['x-ssl-cert'];
try {
  cert = decodeURIComponent(cert);
  console.log(x509.getSubject(cert));
} catch (error) {
  console.log('Bad SSL-certificate?', error);
}

以上是关于如何正确设置Proxy Switchy的主要内容,如果未能解决你的问题,请参考以下文章

urllib-Proxy

npm proxy报错处理

vue 设置代理

如何在 mod_proxy 设置下引用 Apache 的 http.conf 中的环境变量

如何在 Sencha Touch 2 proxy/model/store/whatever 上设置 CRUD 方法?

【proxy】Linux上各类代理设置