2016-08-28 19:31:22

(一)、JMeter测试http接口

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

 

接口测试怎么做 java 接口测试例子_3c

1.打开JMeter

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

接口测试怎么做 java 接口测试例子_3c_02

 

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

接口测试怎么做 java 接口测试例子_接口测试_03

 

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

v.juhe.cn(不要将前面的http也写进去了)

/weather/ip

 

接口测试怎么做 java 接口测试例子_java_04

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

      名称           值

      format        2

      key         f4e18d4e1a23cf214c8a8e03ca57affc

      ip             58.215.185.154

接口测试怎么做 java 接口测试例子_接口测试怎么做 java_05

 

 6.添加察看结果树

 

接口测试怎么做 java 接口测试例子_接口测试怎么做 java_06

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

接口测试怎么做 java 接口测试例子_线程组_07

 

(二)、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

接口测试怎么做 java 接口测试例子_接口测试怎么做 java_08

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

 

接口测试怎么做 java 接口测试例子_接口测试怎么做 java_09

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

 

接口测试怎么做 java 接口测试例子_java_10

 

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

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

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

还是以天气预报为例:

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

接口测试怎么做 java 接口测试例子_线程组_11

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();
      }
        }       
    }

结果:

接口测试怎么做 java 接口测试例子_接口测试怎么做 java_12

 

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