• 简单的接口测试实例


    2016-08-28 19:31:22

    (一)、JMeter测试http接口

        URL:http://www.juhe.cn/docs/api/id/39/aid/132,GET方式

     

    1.打开JMeter

    2.添加——Threads(Users)——线程组

     

    3.添加请求。在线程组下面右键添加——Sampler——HTTP请求

     

     4.在web服务器输入(URL)

          服务器名称或IP:v.juhe.cn(不要将前面的http也写进去了)

          路径:/weather/ip

     

    5.同请求一起发送参数:添加

          名称           值

          format        2

          key         f4e18d4e1a23cf214c8a8e03ca57affc

          ip             58.215.185.154

     

     6.添加察看结果树

     

     6.点击运行,在察看结果树里查看结果

     

    (二)、jmter测试webservice接口

    在jmeter里面是没有Webservice请求的,但是Webservice是通过soap协议完成的,我们可以利用soap进行测试。

    URL: http://ws.webxml.com.cn/webservices/qqOnlineWebService.asmx?op=qqCheckOnline,用来检查QQ是否在线。

    默认QQ号码是8698053,返回Y 表示在线,返回N表示离线,返回E表示QQ号码错误,返回A表示商业用户验证失败,返回V表示免费用户超过数量。

    在Jmeter测试计划下添加线程组,在线程组下添加soap

    将网址复制粘贴到URL处;不要勾选“Send SOAPAction”;在Soap/XML-RPC Data处粘贴原网址SOAP 1.1标题下的内容,注意将<qqCode> </qqCode> 里的string换成8698053.

     

    添加察看结果树,可以看到结果里有<qqCheckOnlineResult>Y</qqCheckOnlineResult>,说明QQ是在线的。

     

    当然(一)、(二)的例子也可以由loadrunner实现,但jmeter不但轻巧,还可以完成功能,所以在此加以介绍。

    (三)、eclipse+jsoup测试http接口

    jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。总之,jsoup可以用来抓取网页数据。

    还是以天气预报为例:

    建立JsoupDemo工程,注意将jsoup包配置进来。

    get方法:

    package com.nicole.jsoupdemo;
    
    import java.io.IOException;
    
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    
    public class GetTest{ 
          public static void main(String[] args){
              testJsoup();
         }
        public static void testJsoup(){
          try{            
              Connection conn = Jsoup.connect("http://v.juhe.cn/weather/ip").ignoreContentType(true);
             //调用jsoup内置的connect这个方法去链接http://v.juhe.cn/weather/ip, 并且忽略ContentType,不做这个类型的校验
              conn.data("format","2");
              conn.data("key","f4e18d4e1a23cf214c8a8e03ca57affc");//如果是密码就需要换成conn.key
              conn.data("ip","58.215.185.154");
              //调用参数
              Document doc = conn.get();
              //调用get方法
              System.out.println(doc);
              //打印出来
          }catch(IOException e){
              e.printStackTrace();
          }
            }
        }

    post方法:只要将conn.get()改为conn.post即可

    package com.nicole.jsoupdemo;
    
    import java.io.IOException;
    
    import org.jsoup.Connection;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    
    public class PostTest{ 
         public static void main(String[] args){
             testJsop();
         }
        public static void testJsop(){
          try{            
              Connection conn = Jsoup.connect("http://v.juhe.cn/weather/ip").ignoreContentType(true);
             //调用jsoup内置的connect这个方法去链接http://v.juhe.cn/weather/ip, 并且忽略ContentType,不做这个类型的校验
              conn.data("format","2");
              conn.data("key","f4e18d4e1a23cf214c8a8e03ca57affc");//如果是密码就需要换成conn.key
              conn.data("ip","58.215.185.154");
              //调用参数
              Document doc = conn.post();
              //调用post方法
              System.out.println(doc);
              //打印出来
          }catch(IOException e){
              e.printStackTrace();
          }
            }       
        }

    结果:

    其实,不管是什么接口, 它们的原理是一样的,最终封装出来的都只是一个地址而已,我们并不需要仔细关注内部是如何实现的,可以将上面测试的方法和思路应用于其他接口。

  • 相关阅读:
    携程开源框架Apollo基础学习(一)
    nslookup,dig,host的用法详解
    curl命令学习
    Saltstack本地管理无master模式
    Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
    JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
    #{}和${}的区别是什么?
    为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
    MyBatis 与 Hibernate 有哪些不同?
    MyBatis 的好处是什么?
  • 原文地址:https://www.cnblogs.com/kanhaiba/p/5436325.html
Copyright © 2020-2023  润新知