java web接口测试(java测试接口的用法)

网友投稿 471 2023-02-23


本篇文章给大家谈谈java web接口测试,以及java测试接口的用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享java web接口测试的知识,其中也会对java测试接口的用法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java各接口性能如何测试

Java编程下用JMeter Java Sampler进行多接口性能测试,使用方法如下:

/** 
*JMeter Java Sampler介绍
*setupTest做些初始化的工作,每个线程只执行一次
*teardownTest做些清理工作,每个线程只执行一次
*runTest具体的测试执行工作,每个并发每次循环都将执行一次
**/
//继承AbstractJavaSamplerClient
public class hessianTest extends AbstractJavaSamplerClient{
//hessian调用地址
private static String url = "hessian/remoting/userService";
 MyService collect = null;
 HessianProxyFactory factory = new HessianProxyFactory();
 public int id;
 
 @Override
 public void setupTest(JavaSamplerContext arg0) {
  //获取jmeter传入参数
   id=arg0.getIntParameter("id");
  try {
   collect = (MyService) factory.create(
     MyService.class, url);
  } catch (MalformedURLException e) {
   e.printStackTrace();
  }
 }
 @Override
 public SampleResult runTest(JavaSamplerContext arg0) {
  SampleResult sp = new SampleResult();
  sp.sampleStart();
  User rt = null;
  try {
   rt = collect.getUser(id);
  } catch (Exception e) {
   sp.sampleEnd();
   sp.setSuccessful(false);
   return sp;
  }
  sp.sampleEnd();
  if(rt.getId()==id)
   sp.setSuccessful(true);
  else
   sp.setSuccessful(false);
  return sp;
 }
 @Override
 public void teardownTest(JavaSamplerContext context) {
  super.teardownTest(context);
 }
}

java程序的接口中的测试类该怎么写?有什么用呢?

其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
用loadrunner实现接口测试
大家都知道loadrunner是一种性能测试工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书,该说明书最基本的要求如下:
接口测试地址:/sns/publish

?xml
version="1.0"
encoding="iso-8859-1"?
<
publish


123

456
userid

2
commentstypeid

123

456

don't
forget
the
meeting!

这也是一种写法,可以跟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()的前面。

如何使用junit测试javaweb工程

一:创建一个测试类,建议将测试类单独放在一个包中(在 maven 项目里有测试类专门的存放位置),新建一个Junit Test Case类,下一步 

测试类的命名建议是你将要测试的类名+Test,然后点 Browse, 你可以选择要进行测试的类(一般选择 Service, 因为 Service 关心的是业务需求),用这种方式创建可以自动生成要测试类的测试类,你只需要进行测试代码的书写.

@Test
public void testqueryById(){
}    @Test
public void testQueryAll(){
}    @Test
public void testReduceNumber(){
}123456789101112

如果里面有自动生成的代码,删除或注释即可…

二:配置 spring 和 junit 整合, junit 启动时加载 springIOC 容器,这里你需要 Spring-test jar包

@RunWith(SpringJUnit4ClassRunner.class)    //告诉junitspring配置文件
@ContextConfiguration(locations = {"classpath:spring/spring-dao.xml"})123

同样的,在测试类中我们会调用 Service 的逻辑,由于我们使用的是 Spring+SpringMVC+ 持久化框架,所以要注入一个 IService 接口(这里我直接对 DAO 进行测试了)

@Autowired
private SeckillDao seckillDao;12

接下来是测试逻辑,在编写测试代码之前建议覆盖实体中的 toString 方法,不然打印会很麻烦.

@Test    public void testqueryById(){        long id = 1000;
Seckill seckill = seckillDao.queryById(id);
System.out.println(seckill.getSeckillName());
System.out.println(seckill);
}    //JAVA没有保存形参的记录,如果你在 dao 中传了多个参数,那么需要声明它的形参对应的实参,否则 JVM 会显示找不到参数.声明方式稍后奉上
@Test    public void testQueryAll(){
List<Seckill seckills = seckillDao.queryAll(0, 100);        for(Seckill seckill:seckills){
System.out.println(seckill);
}
}
@Test    public void testReduceNumber(){
Date killTime = new Date();        //对增加进行测试的时候,只要数据库增加了一条数据,我们就默认这个方法执行成功了
int updateCount = seckillDao.reduceNumber(1000L, killTime);
System.out.println("updateCount = "+updateCount);
}123456789101112131415161718192021222324

解决JAVA不保存形参的记录

int reduceNumber(@Param("seckillId")long seckillId,@Param("killTime")Date killTime);
Seckill queryById(long seckillId);    /**
* mysql的分页查询
* @param offset 告诉它实际的形参
* @param limit
* @return
*/
List<Seckill queryAll(@Param("offset")int offset,@Param("limit")int limit);1234567891011

接下来我们根据他返回的结果和我们想要的结果对应就可以了. 测试类不用部署项目, 测试周期非常短, 而且可以进行专项测试. 测试类代码逻辑十分简单, 几乎不会出错. 如果结果不是预期的, 那么根据你的需求修改! 
当然, 它的局限性也很打. 从单元测试不能看出页面传值的错误, 许多项目在服务器中的表现也不能模拟. 
那么我们什么时候用junit呢? 
当你的数据库操作非常复杂, 你不确定能输出你想要的值的时候, 相比用 debug 调试, 使用 Junit 是更方便的手段.或者新手出错概率非常大, 也不用在服务器中专门测试项目的表现, Junit 是个必备的工具!而且测试类的测试代码重用性很高. 
如果你的数据和预期相悖, 那么修改业务逻辑; 否则, 查看页面是否有错! Junit在一定程度上减轻了我们业务代码调试的压力, 让我们关注于一点解决错误.

如何使用postman测试接口webservice?

搜索java web接口测试:[javascript] view plaincopy

var ws = new WebSocket(“ws://echo.websocket.org”);

ws.onopen = function(){ws.send(“Test!”); };

ws.onmessage = function(evt){console.log(evt.data);ws.close();};

ws.onclose = function(evt){console.log(“WebSocketClosed!”);};

ws.onerror = function(evt){console.log(“WebSocketError!”);};

一. 基本概念

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。

二. web广泛用到的技术

1.TCP/IP:通用网络协议,被各种设备使用java web接口测试

2.HTML:通用用户界面,可以使用HTML标签显示数据;

3.Java:写一次可以在任何地方运行的通用编程语言,因此java具有跨平台特性;

4.XML :通用数据表达语言,在web上传送结构化数据的容易方法;

5.java web接口测试他们的特点是其开放性,跨平台性,开放性正是Web services的基础。

JAVA调用C语言发布的webservice接口

Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。
1、编写代码方式:

package com.yudun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
  {
     //标识Web Service的具体路径
   String endpoint = "WebService服务地址";
     // 创建 Service实例
    Service service = new Service();   
     // 通过Service实例创建Call的实例
    Call call = (Call) service.createCall();
    //将Web Service的服务路径加入到call实例之中.
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
   // 由于需要认证,故需要设置调用的SOAP头信息。   
    Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") ); 
          org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName); 
          header.addTextNode( "blablabla" ); 
          call.addHeader(header);
          
//    SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader");   
//    soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");   
//    try  
//    {   
//        soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");   
//    }   
//    catch (SOAPException e)   
//    {   
//        e.printStackTrace();   
//    }   
//    call.addHeader(soapHeaderElement);  
    //调用Web Service的方法
          org.apache.axis.description.OperationDesc oper;
          org.apache.axis.description.ParameterDesc param;
          oper = new org.apache.axis.description.OperationDesc();
          oper.setName("opName");
          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
          param.setOmittable(true);
          oper.addParameter(param);
          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
          param.setOmittable(true);
          oper.addParameter(param);
          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
          param.setOmittable(true);
          oper.addParameter(param);
          oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
          oper.setReturnClass(java.lang.String.class);
          oper.setReturnQName(new javax.xml.namespace.QName("", "return"));
          oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
          oper.setUse(org.apache.axis.constants.Use.LITERAL);
          oper.addFault(new org.apache.axis.description.FaultDesc(
                        new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),
                        "Exception",
                        new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"), 
                        true
                       ));
   call.setOperation( oper );
   call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "opName"));
    //调用Web Service,传入参数
   String res = ( String ) call.invoke( new Object[]("arg0","arg1"));
   System.out.println("===============");
   return res;
  }
/**
  * @param args
  */
 public static void main(String[] args) {
  try {
   System.out.println(getResult());
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (RemoteException e) {
   e.printStackTrace();
  } catch (ServiceException e) {
   e.printStackTrace();
  } catch (SOAPException e) {
   e.printStackTrace();
  }
    }
}

2、利用Eclipse自动生成WebService client代码就容易多了:
首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击Next,在Service definition中输入 WebService的发布地址,点击Finish
这样,WebService Client代码已经生成好了。
接下来写一个Test类,在main函数中输入如下代码:


String endpoint = "服务器的WebService的地址";
 YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);
 try {
 String resultStr = umsp.opMethod("arg0","arg1");
 System.out.println(resultStr);
 } catch (Exception e) {
 System.out.println("异常");
 e.printStackTrace();
} catch (RemoteException e) {
 System.out.println("RemoteException异常");
 e.printStackTrace();
}

使用浏览器怎么调用Java Web Service的接口

Java通过WSDL文件来调用webservice:
注意java web接口测试,以下的代码并没有经过真正的测试,只是说明这些情况,不同版本的Axis相差很大,大家最好以apache网站上的例子为准,这里仅仅用于说明其基本用法。
1,直接AXIS调用远程的web service
这种方法比较适合那些高手,他们能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是专门搞这行的,即使一段时间看懂,后来也就忘记java web接口测试了。直接调用模式如下:
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;
public class caClient {
public static void main(String[] args) {
try {
String endpoint = "";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String temp = "测试人员";
String result = (String)call.invoke(new Object[]{temp});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
2,直接SOAP调用远程的webservice
这种模式我从来没有见过,也没有试过,但是网络上有人贴出来,我也转过来
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import java.io.*;
import java.net.*;
import java.util.Vector;
public class caService{
public static String getService(String user) {
URL url = null;
try {
url=new URL("");
} catch (MalformedURLException mue) {
return mue.getMessage();
}
// This is the main SOAP object
Call soapCall = new Call();
// Use SOAP encoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// This is the remote object we're asking for the price
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
// This is the name of the method on the above object
soapCall.setMethodName("getUser");
// We need to send the ISBN number as an input parameter to the method
Vector soapParams = new Vector();
// name, type, value, encoding style
Parameter isbnParam = new Parameter("userName", String.class, user, null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try {
// Invoke the remote method on the object
Response soapResponse = soapCall.invoke(url,"");
// Check to see if there is an error, return "N/A"
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String f = fault.getFaultString();
return f;
} else {
// read result
Parameter soapResult = soapResponse.getReturnValue ();
// get a string from the result
return soapResult.getValue().toString();
}
} catch (SOAPException se) {
return se.getMessage();
}
}
} 关于java web接口测试和java测试接口的用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java web接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java测试接口的用法、java web接口测试的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网盘开发接口(开源网盘客户端)
下一篇:为什么要有api接口文档(为什么需要接口 java)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~