phoenixframe自动化平台使用多批次数据做接口测试的方法

package org.phoenix.cases.webservice;

import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map.Entry;

import org.phoenix.action.WebElementActionProxy;
import org.phoenix.model.CaseLogBean;
import org.phoenix.model.InterfaceBatchDataBean;
import org.phoenix.model.InterfaceDataBean;
import org.phoenix.model.UnitLogBean;

import com.meterware.httpunit.WebResponse;

/**
 * 使用phoenix做接口测试的案例,包括两个:<br>
 * 1、使用多批数据对一个接口url做测试<br>
 * 2、不使用多批数据<br>
 * 若对wsdl形式的接口做测试,则wsdl的文件需要以Dom方式解析。使用WebResponse中的Dom即可。
 * @author mengfeiyang
 *
 */
public class ContactJieKou extends WebElementActionProxy{
	private static String caseName = "接口测试用例";
	public ContactJieKou() {
	}
	@Override
	public LinkedList<UnitLogBean> run(CaseLogBean arg0) {
		init(caseName,arg0);

		LinkedHashMap<InterfaceBatchDataBean, List<InterfaceDataBean>> datas = webProxy.loadInterfaceDatas(caseName);

		Iterator<Entry<InterfaceBatchDataBean, List<InterfaceDataBean>>> iterator = datas.entrySet().iterator();
		while(iterator.hasNext()){
			Entry<InterfaceBatchDataBean, List<InterfaceDataBean>> entry = iterator.next();
			InterfaceBatchDataBean iBatchBean = entry.getKey();
			List<InterfaceDataBean> iDatas = entry.getValue();
			System.out.println("--数据批次:"+iBatchBean.getId()+"   期望值:"+iBatchBean.getExpectData());
			String url  ="http://v.youku.com/player/getPlayList/VideoIDS/XNzUwODY4Nzc2/timezone/+08/version/5/source/video?ctype=10&ev=1&password=&";
			for(InterfaceDataBean iData : iDatas){
				url += iData.getDataName()+"="+iData.getDataContent()+"&";
			}
			url = url.substring(0, url.length()-1);
			System.out.println(url);
			WebResponse resp = webProxy.webAPIAction().getResponseByGet(url);
			try {
				//如果接口返回的数据是json格式,则可以通过jsonPath取出实际值,如果不是json则可以自己通过自定义方式如正则表达式等。
				String actual = webProxy.webAPIAction().getJSONValue(resp.getText(), "JSON.data[0].dvd.point[3].title");
				//String actual = resp.getElementWithID("su").getText();根据页面中的id,tagName,XPath,Dom等方式取到实际值
				String r = webProxy.checkPoint().checkIsEqual(actual, iBatchBean.getExpectData());//使用平台的检查点进行检查,检查结果将会记录到日志中
				if(r == null)System.out.println("-----测试通过-----");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		//不使用数据批次的方式
/*		WebResponse resp = webProxy.webAPIAction().getResponseByGet("http://v.youku.com/player/getPlayList/VideoIDS/XNzUwODY4Nzc2/timezone/+08/version/5/source/video?ran=7318&n=3&ctype=10&ev=1&password=");
		String s = null;
		try {
			s = webProxy.webAPIAction().getJSONValue(resp.getText(), "JSON.data[0].dvd.point[3].title");
		} catch (IOException e) {
			e.printStackTrace();
		}

		System.out.println(s);
		String r = webProxy.checkPoint().checkIsMatcher("创新就是一层窗户纸", s);
		if(r == null){
			System.out.println("==================接口通过===================");
		}*/

		return getUnitLog();
	}

	public static void main(String[] args) {
		ContactJieKou yw = new ContactJieKou();
		LinkedList<UnitLogBean> ll = yw.run(new CaseLogBean());
		for(UnitLogBean l : ll){
			System.out.println(l.getContent());
		}
	}

}
时间: 2024-10-03 07:47:26

phoenixframe自动化平台使用多批次数据做接口测试的方法的相关文章

phoenixframe自动化平台使用多批次数据进行接口测试的示例

版权声明:本文为博主原创文章,未经博主允许不得转载.

关于phoenixframe自动化平台在Linux环境下执行用例说明

phoenixframe自动化平台支持在Linux环境下使用phantomjs,Firefox,chrome执行测试用例.但有以下几个问题需要注意: 1.若无法启动phantomjs,Firefox,chrome的驱动,则请检查存放drivers的目录是否有读写权限.使用一下命令添加一下权限即可: 假如目录为:.../webapps/phoenix_node/WEB-INF/classes/drivers 则cd到drivers目录下执行:chmod 777 * 再次启动即可. 在Linux环境

phoenixframe自动化平台在Linux环境下执行用例的说明

phoenixframe自动化平台支持在Linux环境下使用phantomjs,Firefox,chrome执行测试用例.但有以下几个问题需要注意: 1.若无法启动phantomjs,Firefox,chrome的驱动,则请检查存放drivers的目录是否有读写权限.使用一下命令添加一下权限即可: 假如目录为:.../webapps/phoenix_node/WEB-INF/classes/drivers 则cd到drivers目录下执行:chmod 777 * 再次启动即可. 在Linux环境

Linux 平台下 误删 oracle 数据文件的恢复方法

1  问题描述 之前写过一篇删除oracle home目录的blog,参考: Linux 平台误删 home oracle 根目录的解决方法 http://blog.csdn.net/tianlesoftware/article/details/43794273 本篇是这边的引深,本来应该是年前整理的,拖到年后了. 模拟现状: 数据库在正常运行,误操作,直接rm 掉了数据文件. 测试环境: [[email protected] trace]$ cat /etc/redhat-release Re

实战:基于Python构建运维自动化平台

导语: 今天与大家一起探讨如何基于Python构建一个可扩展的运维自动化平台,也希望能与大家一起交流,共同成长. 此次分享将通过介绍OMServer.OManager具备的功能.架构设计.模块定制.安全审计.C/S结构的实现等几个方面的内容来展开. 为什么选择Python? 默认安装且跨平台 可读性好且开发效率高 丰富的第三方库(开发框架.各类API.科学计算.GUI等) 社区活跃&众多开发者. Python在腾讯的现状,根据去年内部提交组件语言统计,除去2.3.4前端技术,Python在高级编

如何基于Python构建一个可扩展的运维自动化平台

嘉宾简介 刘天斯 从事互联网运维工作已13年,目前就职于腾讯-互动娱乐部,负责游戏大数据的运营,曾就职于天涯社区,担任首席架构师/系统管理员. 热衷开源技术的研究,包括系统架构.运维开发.负载均衡.缓存技术.数据库.NOSQL.分布式存储.消息中间件.大数据及云计算.Mesos.Docker.DevOps等领域.擅长大规模集群的运维工作,尤其在自动化运维方面有着非常丰富的经验.同时热衷于互联网前沿技术的研究,活跃在国内社区.业界技术大会,充当一名开源技术的传播与分享者. 导言 受 Reboot

#IT明星不是梦# 自动化平台的构建与zabbix二次开发那些事

在前东家,我对于运维平台重新做了二次的改造,当然基于zabbix平台的功能也在不断的完善,相对于之前的基础架构,我们这次采用vue + element的前端架构,出图使用的是echart的方式.后端我们使用了restful的标准通信框架. 自动化架构 1.当然在讲到zabbix之前我们先看一下我们之前在老东家的时候做的相关的一些平台操作: 平台相关注解: 底层的数据主要使用CMDB来进行管理,CMDB开放APi接口给上层的发布系统.DB系统:当然各个子系统对接都是有权限审计. 数据录入统一使用脚

Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效果,可以说还是非常的理想的.同时我们也收集到了不少的问题,比如说如何在这种分布式的架构下使用Session,NLB中有一台服务器挂掉了会导致对外暴露的地址无法访问,如果实现服务器之间的同步,如果更好的进行热修复等等,还有我们在上一篇中也提到了NLB所提供的功能是非常简单的,为了回答我们前面提到的问题

Android WebApp &amp; NativeApp 适配测试自动化平台GoGo实现 东海陈光剑

Android WebApp & NativeApp 适配测试自动化平台GoGo实现 东海陈光剑 2014年3月6日 18:27:55 源代码: https://github.com/universsky/AndroidAutomationTestUniverssky.git GoGo平台架构: 运行结果: http://10.73.72.122:88/report.html?run_stamp=20140306052855&sec=336&min=5 http://10.125.