文档章节

phoenixframework自动化测试平台webUI代码示例

孟飞阳
 孟飞阳
发布于 2016/01/22 10:00
字数 444
阅读 240
收藏 1
package org.phoenix.cases;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map.Entry;

import org.phoenix.enums.LocatorType;
import org.phoenix.model.CaseLogBean;
import org.phoenix.model.InterfaceBatchDataBean;
import org.phoenix.model.LocatorBean;
import org.phoenix.model.UnitLogBean;
import org.phoenix.proxy.ActionProxy;

/**
 * 浏览器驱动测试类:
 * 通用方法API:phoenix.commonAPI()....
 * webUI/mobileUI用例API:phoenix.webAPI()....
 * 接口测试用例API:phoenix.interfaceAPI()....
 * androidappAPI:phoenix.androidAPI()....
 * IOSappAPI:phoenix.iosAPI()....
 * svnClientAPI:phoenix.svnClient()....
 * ftpClientAPI:phoenix.ftpClient()....
 * socketClientAPI:phoenix.telnetClient()....
 * ...
 * @author mengfeiyang
 */
public class TestBrowserDriver extends ActionProxy{
	private static String caseName = "浏览器驱动测试用例";	
	public TestBrowserDriver() {}

	@Override
	public LinkedList<UnitLogBean> run(CaseLogBean caseLogBean) {
		init(caseLogBean);//必须有这一步
		//phoenix.webAPI().setFirefoxExePath("D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");//使用Firefox浏览器时,必须添加
		//phoenix.webAPI().setChromeDriverExePath("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver64.exe");//使用chrome浏览器时,必须添加,且chromedriver64.exe必须和chrome.exe在同一目录下
		
		HashMap<InterfaceBatchDataBean, HashMap<String, String>> datas = phoenix.commonAPI().loadWebCaseDatas(caseName);//加载数据库测试数据方法		
		HashMap<String,LocatorBean> locators = phoenix.commonAPI().addLocator(caseName);//加载定位信息的方法
		for(Entry<InterfaceBatchDataBean, HashMap<String, String>> es : datas.entrySet()){
			InterfaceBatchDataBean batchData = es.getKey();
			batchData.getExpectData();//这批数据的执行结果期望值
			HashMap<String, String> dataBlocks = es.getValue();
			String phoenixframe = dataBlocks.get("输入数据1");//在数据库中此数据的key
			phoenix.webAPI().openNewWindowByFirefox("http://www.baidu.com");
			//phoenix.webAPI().openNewWindowByChrome("http://www.baidu.com");
			//phoenix.webAPI().openNewWindowByIE("http://www.baidu.com");
			//phoenix.webAPI().openNewWindowByHtmlUnit("http://www.baidu.com", true, BrowserVersion.INTERNET_EXPLORER);
			//phoenix.webAPI().openNewWindowByPhantomJs("http://www.baidu.com");
			phoenix.webAPI().webElement("//*[@id=\"kw\"]",LocatorType.XPATH).setText(phoenixframe);//引用数据
			phoenix.webAPI().webElement(locators.get("btnLocator").getLocatorData()).click();//使用数据中的定位信息,等同于phoenix.webAPI().webElement("btnLocator").click();
			String r = phoenix.webAPI().webElement("//*[@id=\"su\"]", LocatorType.XPATH).getAttribute("value");//数据库中的数据可以与页面不变的数据混合使用
			phoenix.checkPoint().checkIsEqual(r, "百度一下");//调用检查点,检查结果会在日志中统计
			phoenix.commonAPI().addLog("我是自定义的");//可以手动插入一句日志,该日志会在最后的日志记录中体现
			phoenix.webAPI().sleep(1000);
			phoenix.webAPI().closeWindow();	
		}
		return getUnitLog();
	}
	public static void main(String[] args) {
		LinkedList<UnitLogBean> ll = new TestBrowserDriver().run(new CaseLogBean());
		for(UnitLogBean l : ll){
			System.out.println(l.getContent());
		}
	}
}

 

© 著作权归作者所有

共有 人打赏支持
孟飞阳
粉丝 208
博文 981
码字总数 546304
作品 5
朝阳
个人站长
私信 提问
phoenixframework自动化测试平台模块介绍

phoenixframework 自动化测试平台,包含WEB、Mobile、接口、安全测试模块。通过对测试代码的动态编译,执行,进行测试。 网站:http://www.cewan.la 系统名称:自动化测试平台 系统介绍: 【...

孟飞阳
2015/06/13
0
0
Phoenix Framework 1.4.7,自动化测试平台

自动化测试平台phoenixframework 1.4.7版本发布咯,git.oschina和maven都已经同步更新。 版本修复问题: 1、修复多个反人类的唯一性约束 2、phoenix_node:jmeter性能测试增加对body参数的支持...

孟飞阳
2016/03/20
2.2K
11
Elixir Web 框架 Phoenix 1.4.0 正式发布,支持 HTTP/2

函数式编程语言 Elixir 的 Web 开发框架 Phoenix 已发布 1.4.0 正式版本,最大的亮点是支持 HTTP/2 。 新版本还带来了对编译时间的改进,新的错误页面和本地 SSL 证书生成等开发体验,并对内...

王练
2018/11/09
830
2
phoenixframe 自动化平台 1.5.0 全新发布

一、前言 之前一直想对phoenix_webdriver,phoenix_mobile的代码进行重构,不少朋友反馈平台的API不够直观,尤其是webUI和mobile app相关的API有些乱。我自己也有这种感觉,尤其在后续的功能...

孟飞阳
2016/07/17
1K
11
phoenixframework 自动化测试平台 1.4.8 版本发布

phoenixframework自动化测试平台 1.4.8版本更新咯,千呼万唤始出来啊。本次更新的重点是修复了检查点,定时任务的细节bug;优化了性能测试数据格式,日志的批量操作;增加了ehcache缓存,数据...

孟飞阳
2016/06/18
1K
13

没有更多内容

加载失败,请刷新页面

加载更多

eggjs与sequelize简单demo

参考 egg 官方文档 安装 // 依赖npm install --save egg-sequelize mysql2// ts 类型npm install --save @types/sequelize 插件,config/plugin.ts import { EggPlugin } from 'egg';......

Geeyu
33分钟前
1
0
看过上百部片子的这个人教你视频标签算法解析

本文由云+社区发表 随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已经...

腾讯云加社区
48分钟前
2
0
2. 红黑树

定义:红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树(Binary Search Tree)。 要理解红黑树,先要了解什么是二叉查找树。在上一章中,我们学习了什么是二叉树,以及二叉树...

火拳-艾斯
49分钟前
3
0
input的button类型,点击页面跳转

一、input type=button 不做任何操作 例如: <input type="button" class="btn btn-primary" style="width: 30%" value="返回" onclick="window.location.href='/users/list'"></input> onc......

Sunki
55分钟前
1
0
踩坑:js 小数运算出现精度问题

背景 在学习小程序商城源码时发现了这个问题,单价可能出现小数,小数之间运算结果会莫名其妙多出一大串数字,比如下面这样👇。 在此之前我是知道 js 中著名的 0.1 + 0.2 != 0.3 的问题的,...

dkvirus
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部