测试api代码,简单的接口测试代码

http://www.oschina.net/code/snippet_1408874_43829

<html lang="zh-CN">

<head>

    <meta charset="utf-8">

    <title>接口测试</title>

    <link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">

    <link href="http://cdn.bootcss.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">

    <link href="http://static.bootcss.com/www/assets/css/site.min.css?v3" rel="stylesheet">

    <link href="http://static.bootcss.com/www/assets/ico/favicon.png" rel="shortcut icon">

    <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>

</head>

<body>

<?php

header(‘Content-type:text/html;charset=utf-8‘);

function fly_curl($url, $postFields = null) {

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.1)‘);

    curl_setopt($ch, CURLOPT_HEADER, 0);

    curl_setopt($ch, CURLOPT_FAILONERROR, 0);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //curl_setopt($ch,CURLOPT_HTTPHEADER,array("Expect:"));

    if (is_array($postFields) && 0 < count($postFields))

    {

        $postBodyString = "";

        $postMultipart = false;

        foreach ($postFields as $k => $v)

        {

            if("@" != substr($v, 0, 1))//判断是不是文件上传

            {

                $postBodyString .= "$k=" . urlencode($v) . "&";

            }

            else//文件上传用multipart/form-data,否则用www-form-urlencoded

            {

                $postMultipart = true;

            }

        }

        unset($k, $v);

        curl_setopt($ch, CURLOPT_POST, 1);

        if ($postMultipart)

        {

            curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);

        }

        else

        {

            //var_dump($postBodyString);

            curl_setopt($ch, CURLOPT_POSTFIELDS, substr($postBodyString,0,-1));

        }

    }

    $reponse = curl_exec($ch);

    //return curl_getinfo($ch);

    if (curl_errno($ch))

    {

        throw new Exception(curl_error($ch),0);

    }

    else

    {

        $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if (200 !== $httpStatusCode)

        {

            throw new Exception($reponse,$httpStatusCode);

        }

    }

    curl_close($ch);

    return $reponse;

}

function microtime_float(){

    list ($usec, $sec) = explode(" ", microtime());

    return ((float) $usec + (float) $sec);

}

$start = $end = 0;

if (isset($_POST[‘submit‘])) {

    if (strstr($_POST[‘url‘], ‘?‘)) {

        $url = sprintf("%s&auth=%s", $_POST[‘url‘], $auth);

    } else {

        $url = sprintf("%s?auth=%s", $_POST[‘url‘], $auth);

    }

    $param = array();

    if (isset($_POST[‘param‘])) {

        foreach($_POST[‘param‘] as $k => $item) {

            if (!empty($item[‘method‘]) && !empty($item[‘name‘])) {

                $param[$item[‘method‘]][$item[‘name‘]] = $item[‘value‘];

            }

        }

    }

    

    if (isset($param[‘get‘]) && !empty($param[‘get‘])) {

        foreach ($param[‘get‘] as $name => $value) {

            $url = sprintf("%s&%s=%s", $url, $name, $value);

        }

    }

    $post_data = null;

    if (isset($param[‘post‘]) && !empty($param[‘post‘])) {

        $post_data = $param[‘post‘];

    }

    

    $start =  microtime_float();

    $return = fly_curl($url, $post_data);

    $content = json_decode(urldecode($return), TRUE);

    if ( ! $content) {

        $content = $return;

    }

    $end =  microtime_float();

}

?>

    <div class="container">

        <div class="row row-offcanvas row-offcanvas-right">

            <div class="col-xs-12 col-sm-12">

                <div class="row" >

                    <div class="col-xs-1 col-lg-4">

                        <h1>接口测试</h1>

                        <div class="thumbnail">

                        <form class="form-signin" action="" method="post">

                            <b>请填URL</b>:

                            <input value="<?php echo isset($_POST[‘url‘])?$_POST[‘url‘]:‘‘;?>" class="form-control" placeholder="填写完整地址,以http://开头" type="text" name="url" required><br>

                            <?php if (isset($_POST[‘param‘]) && !empty($_POST[‘param‘])) :?>

                                <?php foreach ($_POST[‘param‘] as $k => $item) :?>

                                    <?php if (!empty($item[‘method‘]) && !empty($item[‘name‘])) :?>

                                        <div class="thumbnail">

                                            <b>参数name</b>:

                                            <input value="<?php echo $item[‘name‘];?>" placeholder="请填写" type="text" name="param[<?php echo $k;?>][name]"><br>

                                            <b>参数value</b>:

                                            <input value="<?php echo $item[‘value‘];?>" placeholder="请填写" type="text" name="param[<?php echo $k;?>][value]"><br>

                                            <b>请求方式</b>:

                                            <label><input <?php if($item[‘method‘]==‘get‘):?>checked<?php endif;?> value="get" type="radio" name="param[<?php echo $k;?>][method]">get</label>

                                            <label><input <?php if($item[‘method‘]==‘post‘):?>checked<?php endif;?> value="post" type="radio" name="param[<?php echo $k;?>][method]">post</label><br />

                                            <a href="#" onclick="del_param(this)">删除</a>

                                        </div>

                                    <?php endif;?>

                                <?php endforeach;?>

                            <?php endif;?>

                            

                            <input type="button" name="add_param" id="add_param" value="添加参数" class="btn btn-lg btn-primary btn-block"><br />

                            <input type="submit" name="submit" value="测试" class="btn btn-lg btn-primary btn-block"><br />

                        </form>

                        </div>

                    </div>

                    <div class="col-xs-1 col-lg-8">

                        <?php

                            if (isset($_POST[‘submit‘])) {

                                echo "<pre>";

                                echo "请求时间:";

                                var_dump($end - $start);

                                

                                echo "<br />请求url:";

                                isset($url) && var_dump($url);

                                

                                echo "<br />请求参数:";

                                isset($param) && var_dump($param);

                                

                                echo "<hr />结果:";

                                if (isset($content[‘result‘])) {

                                    echo "<br />code:";

                                    var_dump($content[‘result‘][‘code‘]);

                                    echo "message:";

                                    var_dump($content[‘result‘][‘message‘]);

                                    echo "data:";

                                    var_dump($content[‘result‘][‘data‘]);

                                } else {

                                    echo $content;

                                }

                                

                                echo "</pre>";

                            }

                        ?>

                    </div>

                </div>

            </div>

        </div>

        <hr />

    </div>

    <div class="blog-masthead">

        <div class="container">

            <nav class="blog-nav">

                <p class="blog-nav-item">&copy; Company 2014</p>

            </nav>

        </div>

    </div>

</body>

</html>

<script>

    $("#add_param").click(function(){

        var input_len = $("form input").size();

        input_len++;

        $(this).before(‘\

            <div class="thumbnail">\

                <b>参数name</b>:\

                <input value="" placeholder="请填写" type="text" name="param[‘+ input_len +‘][name]"><br>\

                <b>参数value</b>:\

                <input value="" placeholder="请填写" type="text" name="param[‘+ input_len +‘][value]"><br>\

                <b>请求方式</b>:\

                <label><input checked value="get" type="radio" name="param[‘+ input_len +‘][method]">get</label>\

                <label><input value="post" type="radio" name="param[‘+ input_len +‘][method]">post</label><br />\

                <a href="#" onclick="del_param(this)">删除</a>\

            </div>\

        ‘);

    });

    function del_param(obj) {

        $(obj).parent().remove();

    }

</script>

时间: 2024-10-10 20:25:34

测试api代码,简单的接口测试代码的相关文章

HTML QQ聊天代码 简单的一行代码

简单的一行代码: <a href="tencent://message/?uin=173007740&Site=&Menu=yes">和173007740用户聊天</a> 和173007740用户聊天 1.如果用户没有登录QQ,则会弹出QQ登录窗口,登录之后,再点击链接,就可以聊天了 2.如果没有对方QQ,需要加对方QQ为好友,才可以进行聊天 3.如果已有对方QQ,可直接进行聊天

如何使用Java代码测试API的性能

目前手头的项目是对几个API接口进行功能和性能测试.下面我简单的介绍一下. 功能很简单,首先有一个产生Access_Token的API,这个token就是用来给其他API做认证用的:其他的API就是很普通的restAPI. 性能测试主要是压力测试,目标是能得到系统的瓶颈在哪里.第一个是看看1分钟能接受多少个request,第2个是看看能接受多少个并发用户,第3个是看看1个小时能接受多少个request. 功能嘛,很简单,POSTMAN就搞定,此处不展开来讲了. 主要来说说性能,考虑过JMETER

API Studio 5.1.2 版本更新:加入全局搜索、支持批量测试API测试用例、读取代码注解生成文档支持Github与码云等

最近在EOLINKER的开发任务繁重,许久在博客园没有更新产品动态了,经过这些日子,EOLINKER又有了长足的进步,增加了更多易用的功能,比如加入全局搜索.支持批量测试API测试用例.读取代码注解生成文档支持Github与码云等.接下来我们来看看刚刚更新API Studio 5.1.2 版本有什么内容吧!开发不易,熬夜熬得我头发都掉得更快了! 1.读取代码注解生成文档新增对Github.码云的支持 支持通过Github.Gitlab.码云等代码仓库来读取代码的注解并自动生成API文档,支持Ja

神马是代码简单的cmd模式,这就是!

小狼正在研究 “怎么查找连在一起的同色方块?”算法问题 ,突然感觉我是不是需要一种开发模式,不然感觉自己的代码好乱的. 可能是研究算法吧,导致小狼的思路特别清晰,加上也用了差不多1年的nodejs.seajs,对cmd的api非常清楚,不多说,看代码 用法和seajs的用法一样,符合cmd的模式, var require,define; (function(){ var module={} require=function(name){ return module[name] } define=

11.汇编代码简单操作

11.汇编代码简单操作 使用汇编的原因很简单,就是汇编代码的高效.在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件. 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用. *GNU汇编:使用与GNU交叉编译工具链中的汇编器,适合于Linux平台开发. 3.汇编程序框架:注意下面的操作环境是Redhat 6.4 + eclipse C/C++ +CDT插件. 汇编代码的基本框架 ? 汇编用到的地方,启动代码,效率要求

C# 防止同时调用=========使用读写锁三行代码简单解决多线程并发的问题

http://www.jb51.net/article/99718.htm 本文主要介绍了C#使用读写锁三行代码简单解决多线程并发写入文件时提示"文件正在由另一进程使用,因此该进程无法访问此文件"的问题.需要的朋友可以参考借鉴 在开发程序的过程中,难免少不了写入错误日志这个关键功能.实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到日志文件. 选择最后一种方法实现的时候,若对文件操作与线程同步不熟悉,问题就有可能出现了,因为同一个文

ViewModel 实践:高效简单地组织代码

转载自:http://www.cocoachina.com/ios/20150714/12447.html 文/某鸟 前言 不知不觉,笔者也撸码也已经一年多了.随着撸码的数量疾速上涨,如何高效,简单的组织代码,经常引起笔者的思考.作为一个方法论及其实践者(这个定义是笔者自己胡诌的),始终希望能够找到一些简单.有效的方法来解决问题,由此,也开始了一段构建代码的实践体验. 这次要分享的,是自己在长期实践 MVVM 结构后,对 MVVM 框架的一些理解与自己的工作流程.其中或许还有一些地方拿捏欠妥,希

DCGAN 代码简单解读

之前在DCGAN文章简单解读里说明了DCGAN的原理.本次来实现一个DCGAN,并在数据集上实际测试它的效果.本次的代码来自github开源代码DCGAN-tensorflow,感谢carpedm20的贡献! 1. 代码结构 代码结构如下图1所示: 图1 代码结构 我们主要关注的文件为download.py,main.py,model.py,ops.py以及utils.py.其实看文件名字就大概可以猜出各个文件的作用了. download.py主要下载数据集到本地,这里我们需要下载三个数据集:M

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 选择调用的进程为 24 i386 getuid sys_getuid1647 i386 getgid sys_getgid16 使用库函数API方式 使用C代码中嵌入汇编代码方式