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