测试网站接口,nginx篇

nginx是反向代理,怎么通过nginx反向代理要测试接口的线上网站呢。

这里自我提供了一个方法,仅供参考!建议不要用于刷接口等非常规的用途,后果会很严重。

首先 用node express创建一个项目test,然后安装依赖什么的等等,不再多说,可搜索express创建项目,我这里新建一个ejs项目,页面包含接口测试,以及日志处理输出等,项目服务器地址是127.0.0.1:7171。

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/test/stylesheets/style.css' />
    <script src='/test/javascripts/jquery-1.8.3.min.js'></script>
  </head>
  <body>
    <h1><%= title %></h1>
    <button id="testBtn">测试接口</button><span id='testResult'></span>
    <p id='timeLeft' style="color:red;">倒计时:0</p>
    <div style="width: 820px;">
      <div id='content1' style='width:400px;height: 400px;overflow-y: auto;border:1px solid #00f;display: inline-block;word-break: break-all;word-wrap: break-word;'>积分日志信息</div>
      <div id='content2' style='width:400px;height: 400px;overflow-y: auto;border:1px solid #00f;display: inline-block;word-break: break-all;word-wrap: break-word;'>正常日志信息</div>
      <div style='width: 400px;display: inline-block;'>
        <button id='startBtn1' type='button' value='开始'>开始</button>
        <button id='throwBtn1' type='button' value='投掷'>接口1</button>
        <span id='totalNum'>0</span>
      </div>
      <div style="width: 400px;display: inline-block;">
        <button id='startBtn2' type='button' value='开始'>开始</button>
        <button id='throwBtn2' type='button' value='投掷'>接口2</button>
      </div>
    </div>
    <script src='/test/javascripts/accessAll.js'></script>
  </body>
</html>

显示效果

 

注意这里导入了jquery主要是为了接口通讯方便,accessAll是接口处理,在这里可以为所欲为,可以对接口请求数据进行更改和对返回数据分析,贴一个简单的测试代码供参考:

//测试接口
$('#testBtn').click(function(){
    $.ajax({
        "url":'接口url(注意这里不能包含网站域名,否则跨域)',
        "type": "GET",
        success:function(res){
            if(res.result){
                $('#testResult').text('接口正常');
            }else{
                $('#testResult').text(res.msg);
            }
        },
        complete:function(){
            $('#testResult').text = "接口异常";
        },
        fail:function(){
            $('#testResult').text = "http error";
        }
    });
});

接下来最重要的就是怎么让这个网页能正常请求到信息而不跨域呢。

先配置一个nginx服务器地址,端口1111,

接下来,假设要测试接口的网站为test.net,我们把其根代理指向test.net,这时启动nginx,在浏览器输入127.0.0.1:1111试下是不是直接跳到

test,net了,第一步完成。

第二步 配置自己的测试页nginx配置,proxy路径为/test/。到这里基本就玩成配置了,重启nginx,在浏览器启动两个网页,一个是根网页127.0.0.1:1111,另一个是自己的测试页127.0.0.1:1111/test/,这时就可以通过test页正常请求test.net的接口了,注意接口路径。

完整nginx配置

server {
        listen       1111;
        server_name  localhost;

        location / {
        proxy_pass    https://test.net/;
        }

    location /test/ {
        proxy_pass   https://127.0.0.1:1717/;
        }
    
        
        error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   html;
        }
    }

简单的接口测试,当然还有其他很多方法,我这个只是自己摸索出来的。

posted @ 2018-05-23 10:06  保持当下  阅读(723)  评论(0编辑  收藏  举报