loadrunner之java协议脚本编纂

loadrunner之java协议脚本编写


loadrunnerjava脚本saf
1.导入相对应的jar包
2.使用java反编译工具反编译jar包,了解其中的业务流程,选择需要的service以及方法。以下以productWrapService服务为例。
3.在saf框架的配置文件中注册:
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:saf="http://code.xx.com/schema/saf" 
    xmlns:dubbo="http://code.xx.com/schema/dubbo" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
    http://code.xx.com/schema/saf http://code.xx.com/schema/saf/saf.xsd 
    http://code.xxxx.com/schema/dubbo 
    http://code.xxxx.com/schema/dubbo/dubbo.xsd" 
    default-lazy-init="true"> 
     
        <saf:registry address="jdZooKeeper://192.168.12.159:2181" /> 
                <saf:reference  id="productWrapService"  interface="xx.xx.xx.pbim.pbia.dubbo.service.ProductWrapService" group="xxxx" version="1.0"  timeout="30000"   /> 
                <saf:reference  id="bookVideoService"  interface="xx.xx.xx.pbim.pbia.dubbo.service.BookVideoService" group="xxxx" version="1.0"  timeout="30000"   /> 
                <saf:reference  id="attributeService"  interface="xx.xx.xx.pbim.pbia.dubbo.service.AttributeService" group="xxxx" version="1.0"  timeout="30000"   /> 
</beans> 
4.编写loadrunner脚本:

Java代码 
/*
* LoadRunner Java script. (Build: _build_number_)

* Script Description: 
*                     
*/ 
 
import lrapi.lr; 
 
import com.xxx.catagory.pbim.pbia.dubbo.service.ProductWrapService; 
import com.xxx.catagory.pbim.pbia.dubbo.model.ProductSort; 
import java.util.*; 
import java.lang.*; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
public class Actions 

        ProductWrapService r = null; 
    public int init() throws Throwable { 
                int i = 0; 
                ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-dubbo.xml");//读环境配置XML,并注册SAF和redis认证 
        r = (ProductWrapService)context.getBean("productWrapService",ProductWrapService.class);  
        return 0; 
    }//end of init 
 
 
    public int action() throws Throwable { 
        Integer skuIdInteger; 
        Set<Integer> cids = new HashSet<Integer>(); 
        String str=lr.eval_string("<P_sortid>"); 
        skuIdInteger = Integer.valueOf(str); 
        cids.add(skuIdInteger); 
         
        List<ProductSort> retList = new ArrayList<ProductSort>(); 
        ProductSort ps = new ProductSort(); 
        lr.start_transaction("productWrapService_queryProductSort"); 
 
        try 
        { 
            retList = r.queryProductSort(cids); 
                    for (Iterator i$ = retList.iterator(); i$.hasNext(); ) { 
            ps = (ProductSort)i$.next(); 
            lr.output_message("+++++++++" + ps.getName()); 
            } 
            //lr.output_message("++++++++" + retList); 
            if (retList != null) { 
            lr.end_transaction("productWrapService_queryProductSort", lr.PASS); 
            } 
            else { 
            lr.end_transaction("productWrapService_queryProductSort", lr.FAIL); 
            } 
             
        } 
        catch(Exception e) { 
            e.printStackTrace(); 
        } 
        return 0; 
    }//end of action 
 
 
    public int end() throws Throwable { 
        return 0; 
    }//end of end