为了账号安全,请及时绑定邮箱和手机立即绑定

请问java如何编写接口测试DEMO?

/ 猿问

请问java如何编写接口测试DEMO?

慕圣8478803 2019-08-20 18:10:26

java编写接口测试DEMO


查看完整描述

3 回答

?
摇曳的蔷薇

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class URLAccess {
public static void main(String[] args) {
try {
test();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void test() throws IOException {
URL url = new URL("http://www.baidu.com");
System.out.println("==================以下为网站内容==================");
URLConnection urlcon = url.openConnection();
int i = urlcon.getContentLength();
if (i > 0) {
InputStream is = urlcon.getInputStream();
int a;
while ((a = is.read()) != -1) {
System.out.print((char) a);
}
is.close();
} else {
System.out.println("响应内容为空...");
}
}
}



查看完整回答
反对 回复 2019-08-24
?
慕慕森

 其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
  用LoadRunner实现接口测试
  大家都知道LoadRunner是一种性能测试工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书,该说明书最基本的要求如下:
  接口测试地址:/SNS/Publish
  <?xml version="1.0" encoding="ISO-8859-1"?>
  < Publish >
  <SNSID>123</SNSID>
  <UserID>456</ UserID >
  <CommentsTypeID>2</ CommentsTypeID >
  <CommentsID>123</CommentsID>
  <AuthorID>456</AuthorID>
  <CommentsContent>Don't forget the meeting!</CommentsContent >
  </Publish>

  这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。
  方法一适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下,如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把xml拼接成一个字符串然后通过web_custom_request()向服务器发送请求。
  我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过LoadRunner的日志信息查看或者可以通过web_reg_find()或者web_find()这样的API函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()在这里。
  因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request()的前面。



查看完整回答
反对 回复 2019-08-24
?
慕虎7371278

/**

 *  Deal Post Request.

 */

package com.dc.util;

import java.util.Map;

import java.util.Iterator;

import org.apache.commons.httpclient.HttpClient;

import org.apache.commons.httpclient.HttpStatus;

import org.apache.commons.httpclient.methods.PostMethod;

import org.apache.commons.httpclient.NameValuePair;

import org.apache.commons.httpclient.HttpException;

public class PostRequest implements java.io.Serializable {

 private Map parameters;

 private String url;

 public PostRequest() {

 }

 public void setParameters(Map param) {

  if (param != null)

   parameters = param;

 }

 public Map getParameters() {

  return parameters;

 }

 public void setUrl(String url) {

  if (url != null && !(url.equals("")))

   this.url = url;

 }

 public String getUrl() {

  return url;

 }

 public String getPost() throws java.io.IOException, HttpException {

  if (url == null || url.equals("") || parameters == null)

   throw new IllegalStateException(

     "Invalid url or parameters in PostBean.getPost method.");

  String returnData = "";

  HttpClient httpClient = new HttpClient();

   

  PostMethod postMethod = new PostMethod(url);

  NameValuePair[] postData = getParams(parameters);

   

  postMethod.getParams().setContentCharset("GBK"); 

   

  postMethod.addParameters(postData);

   

  httpClient.executeMethod(postMethod);

  if (postMethod.getStatusCode() == HttpStatus.SC_OK) {

   returnData = postMethod.getResponseBodyAsString();

  } else {

   returnData = "error: " + postMethod.getStatusLine();

  }

  postMethod.releaseConnection();

  return returnData;

 }

 private NameValuePair[] getParams(Map map) {

  NameValuePair[] pairs = new NameValuePair[map.size()];

  Iterator iter = map.keySet().iterator();

  int i = 0;

  while (iter.hasNext()) {

   String key = (String) iter.next();

   pairs[i] = new NameValuePair(key, (String) map.get(key));

   i++;

  }

  return pairs;

 }

}

实现方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

 public class DCSMSender{

  

 PostRequest pr = new PostRequest();

  

 public static String smsUrl = DomainGlobal.SMS_URL;

  

 private static DCSMSender instance = new DCSMSender();

 public static DCSMSender getInstance() {

  return instance;

 }

 private DCSMSender() {

 }

 

 /**

  * 向指定手机号码(可多个)发送指定信息

  * 

  * @param cellPhones 手机号

  * @param msg   短信内容

  * @return    成功、失败

  */

 public boolean send(String[] cellPhones, String msg) {

   

  Map param = new HashMap();

  String result = "";

  param.put("cellPhones", java.util.Arrays.toString(cellPhones));

  param.put("msg", DcipherTrans.cipher("system", msg, true));

  pr.setParameters(param);

  pr.setUrl(smsUrl);

  try {

   result = pr.getPost();

   if ("1".equals(result)) return true;

   else return false;

  } catch (Exception e) {

   e.printStackTrace();

   return false;

  }

 }

}

 

 


查看完整回答
反对 回复 2019-08-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信