You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2016/03/30 00:26:13 UTC
[43/50] [abbrv] incubator-geode git commit: GEODE-17: WIP integrating
Pulse with new security
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fed95002/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
deleted file mode 100644
index d65d893..0000000
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseTest.java
+++ /dev/null
@@ -1,1038 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package com.vmware.gemfire.tools.pulse.tests;
-
-import com.gemstone.gemfire.management.internal.JettyHelper;
-import com.gemstone.gemfire.test.junit.categories.UITest;
-import junit.framework.Assert;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.FixMethodOrder;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runners.MethodSorters;
-import org.openqa.selenium.By;
-import org.openqa.selenium.JavascriptExecutor;
-import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.firefox.FirefoxDriver;
-import org.openqa.selenium.interactions.Actions;
-import org.openqa.selenium.support.ui.ExpectedCondition;
-import org.openqa.selenium.support.ui.ExpectedConditions;
-import org.openqa.selenium.support.ui.WebDriverWait;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-@Category(UITest.class)
-@FixMethodOrder(MethodSorters.JVM)
-public class PulseTest {
- private static String jmxPropertiesFile;
- private static String path;
-
- private static org.eclipse.jetty.server.Server jetty = null;
- private static Server server = null;
- private static String pulseURL = null;
- public static WebDriver driver;
- private static final String userName = "admin";
- private static final String pasword = "admin";
-
- /* Constants for executing Data Browser queries */
- public static final String QUERY_TYPE_ONE = "query1";
- public static final String QUERY_TYPE_TWO = "query2";
- public static final String QUERY_TYPE_THREE = "query3";
- public static final String QUERY_TYPE_FOUR = "query4";
- public static final String QUERY_TYPE_FIVE = "query5";
- public static final String QUERY_TYPE_SIX = "query6";
- public static final String QUERY_TYPE_SEVENE = "query7";
-
- private static final String DATA_VIEW_LABEL = "Data View";
- private static final String CLUSTER_VIEW_MEMBERS_ID = "clusterTotalMembersText";
- private static final String CLUSTER_VIEW_SERVERS_ID = "clusterServersText";
- private static final String CLUSTER_VIEW_LOCATORS_ID = "clusterLocatorsText";
- private static final String CLUSTER_VIEW_REGIONS_ID = "clusterTotalRegionsText";
- private static final String CLUSTER_CLIENTS_ID = "clusterClientsText";
- private static final String CLUSTER_FUNCTIONS_ID = "clusterFunctions";
- private static final String CLUSTER_UNIQUECQS_ID = "clusterUniqueCQs";
- private static final String CLUSTER_SUBSCRIPTION_ID = "clusterSubscriptionsText";
- private static final String CLUSTER_MEMORY_USAGE_ID = "currentMemoryUsage";
- private static final String CLUSTER_THROUGHPUT_WRITES_ID = "currentThroughoutWrites";
- private static final String CLUSTER_GCPAUSES_ID = "currentGCPauses";
- private static final String CLUSTER_WRITEPERSEC_ID = "writePerSec";
- private static final String CLUSTER_READPERSEC_ID = "readPerSec";
- private static final String CLUSTER_QUERIESPERSEC_ID = "queriesPerSec";
- private static final String CLUSTER_PROCEDURE_ID = "clusterTxnCommittedText";
- private static final String CLUSTER_TXNCOMMITTED_ID = "clusterTxnCommittedText";
- private static final String CLUSTER_TXNROLLBACK_ID = "clusterTxnRollbackText";
- private static final String MEMBER_VIEW_MEMBERNAME_ID = "memberName";
- private static final String MEMBER_VIEW_REGION_ID = "memberRegionsCount";
- private static final String MEMBER_VIEW_THREAD_ID = "threads";
- private static final String MEMBER_VIEW_SOCKETS_ID = "sockets";
- private static final String MEMBER_VIEW_LOADAVG_ID = "loadAverage";
- private static final String MEMBER_VIEW_LISTENINGPORT_ID = "receiverListeningPort";
- private static final String MEMBER_VIEW_LINKTHROUGHPUT_ID = "receiverLinkThroughput";
- private static final String MEMBER_VIEW_AVGBATCHLATENCY_ID = "receiverAvgBatchLatency";
- private static final String MEMBER_VIEW_HEAPUSAGE_ID = "memberHeapUsageAvg";
- private static final String MEMBER_VIEW_JVMPAUSES_ID = "memberGcPausesAvg";
- private static final String MEMBER_VIEW_CPUUSAGE_ID = "memberCPUUsageValue";
- private static final String MEMBER_VIEW_READPERSEC_ID = "memberGetsPerSecValue";
- private static final String MEMBER_VIEW_WRITEPERSEC_ID = "memberPutsPerSecValue";
- private static final String MEMBER_VIEW_OFFHEAPFREESIZE_ID = "offHeapFreeSize";
- private static final String MEMBER_VIEW_OFFHEAPUSEDSIZE_ID = "offHeapUsedSize";
- private static final String MEMBER_VIEW_CLIENTS_ID = "clusterClientsText";
-
- private static final String REGION_NAME_LABEL = "regionName";
- private static final String REGION_PATH_LABEL = "regionPath";
- private static final String REGION_TYPE_LABEL = "regionType";
- private static final String DATA_VIEW_WRITEPERSEC = "regionWrites";
- private static final String DATA_VIEW_READPERSEC = "regionReads";
- private static final String DATA_VIEW_EMPTYNODES = "regionEmptyNodes";
- private static final String DATA_VIEW_ENTRYCOUNT = "regionEntryCount";
- private static final String REGION_PERSISTENCE_LABEL = "regionPersistence";
- private static final String DATA_VIEW_USEDMEMORY = "memoryUsed";
- private static final String DATA_VIEW_TOTALMEMORY = "totalMemory";
-
- private static final String DATA_BROWSER_LABEL = "Data Browser";
- private static final String DATA_BROWSER_REGIONName1 = "treeDemo_1_span";
- private static final String DATA_BROWSER_REGIONName2 = "treeDemo_2_span";
- private static final String DATA_BROWSER_REGIONName3 = "treeDemo_3_span";
- private static final String DATA_BROWSER_REGION1_CHECKBOX = "treeDemo_1_check";
- private static final String DATA_BROWSER_REGION2_CHECKBOX = "treeDemo_2_check";
- private static final String DATA_BROWSER_REGION3_CHECKBOX = "treeDemo_3_check";
- private static final String DATA_BROWSER_COLOCATED_REGION = "Colocated Regions";
- private static final String DATA_BROWSER_COLOCATED_REGION_NAME1 = "treeDemo_1_span";
- private static final String DATA_BROWSER_COLOCATED_REGION_NAME2 = "treeDemo_2_span";
- private static final String DATA_BROWSER_COLOCATED_REGION_NAME3 = "treeDemo_3_span";
-
- private static final String QUERY_STATISTICS_LABEL = "Query Statistics";
- private static final String CLUSTER_VIEW_LABEL = "Cluster View";
- private static final String CLUSTER_VIEW_GRID_ID = "default_treemap_button";
- private static final String SERVER_GROUP_GRID_ID = "servergroups_treemap_button";
- private static final String REDUNDANCY_GRID_ID = "redundancyzones_treemap_button";
- private static final String MEMBER_DROPDOWN_ID = "Members";
- private static final String DATA_DROPDOWN_ID = "Data";
-
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
- System.setProperty("spring.profiles.active", "pulse.authentication.gemfire");
-
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- jmxPropertiesFile = classLoader.getResource("test.properties").getPath();
- path = getPulseWarPath();
- server = Server.createServer(9999, jmxPropertiesFile);
-
- String host = "localhost";// InetAddress.getLocalHost().getHostAddress();
- int port = 8080;
- String context = "/pulse";
-
- jetty = JettyHelper.initJetty(host, port, false, false, null, null, null);
- JettyHelper.addWebApplication(jetty, context, getPulseWarPath());
- jetty.start();
-
- pulseURL = "http://" + host + ":" + port + context;
-
- Thread.sleep(5000); // wait till the container settles down
-
- driver = new FirefoxDriver();
- driver.manage().window().maximize();
- driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
- driver.get(pulseURL);
- WebElement userNameElement = driver.findElement(By.id("user_name"));
- WebElement passwordElement = driver.findElement(By.id("user_password"));
- userNameElement.sendKeys(userName);
- passwordElement.sendKeys(pasword);
- passwordElement.submit();
-
- Thread.sleep(3000);
- WebElement userNameOnPulsePage = (new WebDriverWait(driver, 10))
- .until(new ExpectedCondition<WebElement>() {
- @Override
- public WebElement apply(WebDriver d) {
- return d.findElement(By.id("userName"));
- }
- });
- Assert.assertNotNull(userNameOnPulsePage);
- driver.navigate().refresh();
- Thread.sleep(7000);
- }
-
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
- driver.close();
- jetty.stop();
- }
-
- public static String getPulseWarPath() throws Exception {
- String warPath = null;
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- InputStream inputStream = classLoader.getResourceAsStream("GemFireVersion.properties");
- Properties properties = new Properties();
- properties.load(inputStream);
- String version = properties.getProperty("Product-Version");
- warPath = "geode-pulse-" + version + ".war";
- String propFilePath = classLoader.getResource("GemFireVersion.properties").getPath();
- warPath = propFilePath.substring(0, propFilePath.indexOf("generated-resources")) + "libs/" + warPath;
- return warPath;
- }
-
- protected void searchByLinkAndClick(String linkText) {
- WebElement element = By.linkText(linkText).findElement(driver);
- Assert.assertNotNull(element);
- element.click();
- }
-
- protected void searchByIdAndClick(String id) {
- WebElement element = driver.findElement(By.id(id));
- Assert.assertNotNull(element);
- element.click();
- }
-
- protected void searchByClassAndClick(String Class) {
- WebElement element = driver.findElement(By.className(Class));
- Assert.assertNotNull(element);
- element.click();
- }
-
- protected void searchByXPathAndClick(String xpath) {
- WebElement element = driver.findElement(By.xpath(xpath));
- Assert.assertNotNull(element);
- element.click();
- }
-
- protected void waitForElementByClassName(final String className, int seconds) {
- WebElement linkTextOnPulsePage1 = (new WebDriverWait(driver, seconds))
- .until(new ExpectedCondition<WebElement>() {
- @Override
- public WebElement apply(WebDriver d) {
- return d.findElement(By.className(className));
- }
- });
- Assert.assertNotNull(linkTextOnPulsePage1);
- }
-
- protected void waitForElementById(final String id, int seconds) {
- WebElement element = (new WebDriverWait(driver, 10))
- .until(new ExpectedCondition<WebElement>() {
- @Override
- public WebElement apply(WebDriver d) {
- return d.findElement(By.id(id));
- }
- });
- Assert.assertNotNull(element);
- }
-
- protected void scrollbarVerticalDownScroll() {
- JavascriptExecutor js = (JavascriptExecutor) driver;
- js.executeScript("javascript:window.scrollBy(250,700)");
- WebElement pickerScroll = driver.findElement(By.className("jspDrag"));
- WebElement pickerScrollCorner = driver.findElement(By
- .className("jspCorner"));
- Actions builder = new Actions(driver);
- Actions movePicker = builder.dragAndDrop(pickerScroll, pickerScrollCorner); // pickerscroll
- // is
- // the
- // webelement
- movePicker.perform();
- }
-
- protected void scrollbarHorizontalRightScroll() {
- JavascriptExecutor js = (JavascriptExecutor) driver;
- js.executeScript("javascript:window.scrollBy(250,700)");
- WebElement pickerScroll = driver
- .findElement(By
- .xpath("//div[@id='gview_queryStatisticsList']/div[3]/div/div[3]/div[2]/div"));
- WebElement pickerScrollCorner = driver.findElement(By
- .className("jspCorner"));
- Actions builder = new Actions(driver);
- Actions movePicker = builder.dragAndDrop(pickerScroll, pickerScrollCorner); // pickerscroll
- // is
- // the
- // webelement
- movePicker.perform();
- }
-
-
-
- @Test
- public void testClusterLocatorCount() throws IOException {
- searchByXPathAndClick(PulseTestLocators.TopNavigation.clusterViewLinkXpath);
- String clusterLocators = driver
- .findElement(By.id(CLUSTER_VIEW_LOCATORS_ID)).getText();
-
- String totallocators = JMXProperties.getInstance().getProperty("server.S1.locatorCount");
- Assert.assertEquals(totallocators, clusterLocators);
- }
-
- @Test
- public void testClusterRegionCount() {
- String clusterRegions = driver.findElement(By.id(CLUSTER_VIEW_REGIONS_ID))
- .getText();
- String totalregions = JMXProperties.getInstance().getProperty(
- "server.S1.totalRegionCount");
- Assert.assertEquals(totalregions, clusterRegions);
- }
-
- @Test
- public void testClusterMemberCount() {
- String clusterMembers = driver.findElement(By.id(CLUSTER_VIEW_MEMBERS_ID))
- .getText();
- String totalMembers = JMXProperties.getInstance().getProperty(
- "server.S1.memberCount");
- Assert.assertEquals(totalMembers, clusterMembers);
- }
-
- @Test
- public void testClusterNumClient() {
- String clusterClients = driver.findElement(By.id(CLUSTER_CLIENTS_ID))
- .getText();
- String totalclients = JMXProperties.getInstance().getProperty(
- "server.S1.numClients");
- Assert.assertEquals(totalclients, clusterClients);
- }
-
- @Test
- public void testClusterNumRunningFunction() {
- String clusterFunctions = driver.findElement(By.id(CLUSTER_FUNCTIONS_ID))
- .getText();
- String totalfunctions = JMXProperties.getInstance().getProperty(
- "server.S1.numRunningFunctions");
- Assert.assertEquals(totalfunctions, clusterFunctions);
- }
-
-@Test
- public void testClusterRegisteredCQCount() {
- String clusterUniqueCQs = driver.findElement(By.id(CLUSTER_UNIQUECQS_ID))
- .getText();
- String totaluniqueCQs = JMXProperties.getInstance().getProperty(
- "server.S1.registeredCQCount");
- Assert.assertEquals(totaluniqueCQs, clusterUniqueCQs);
- }
-
- @Test
- public void testClusterNumSubscriptions() {
- String clusterSubscriptions = driver.findElement(
- By.id(CLUSTER_SUBSCRIPTION_ID)).getText();
- String totalSubscriptions = JMXProperties.getInstance().getProperty(
- "server.S1.numSubscriptions");
- Assert.assertEquals(totalSubscriptions, clusterSubscriptions);
- }
-
- @Test
- public void testClusterJVMPausesWidget() {
- String clusterJVMPauses = driver.findElement(By.id(CLUSTER_GCPAUSES_ID))
- .getText();
- String totalgcpauses = JMXProperties.getInstance().getProperty(
- "server.S1.jvmPauses");
- Assert.assertEquals(totalgcpauses, clusterJVMPauses);
- }
-
- @Test
- public void testClusterAverageWritesWidget() {
- String clusterWritePerSec = driver.findElement(
- By.id(CLUSTER_WRITEPERSEC_ID)).getText();
- String totalwritepersec = JMXProperties.getInstance().getProperty(
- "server.S1.averageWrites");
- Assert.assertEquals(totalwritepersec, clusterWritePerSec);
- }
-
- @Test
- public void testClusterAverageReadsWidget() {
- String clusterReadPerSec = driver.findElement(By.id(CLUSTER_READPERSEC_ID))
- .getText();
- String totalreadpersec = JMXProperties.getInstance().getProperty(
- "server.S1.averageReads");
- Assert.assertEquals(totalreadpersec, clusterReadPerSec);
- }
-
- @Test
- public void testClusterQuerRequestRateWidget() {
- String clusterQueriesPerSec = driver.findElement(
- By.id(CLUSTER_QUERIESPERSEC_ID)).getText();
- String totalqueriespersec = JMXProperties.getInstance().getProperty(
- "server.S1.queryRequestRate");
- Assert.assertEquals(totalqueriespersec, clusterQueriesPerSec);
- }
-
- @Test
- public void testClusterGridViewMemberID() throws InterruptedException {
-
- searchByIdAndClick("default_grid_button");
- List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr")); //gives me 11 rows
-
- for(int memberCount = 1; memberCount<elements.size(); memberCount++){
- String memberId = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberCount + 1) + "]/td")).getText();
- String propertMemeberId= JMXProperties.getInstance().getProperty("member.M" + memberCount + ".id");
- Assert.assertEquals(memberId, propertMemeberId);
- }
- }
-
- @Test
- public void testClusterGridViewMemberName() {
- searchByIdAndClick("default_grid_button");
- List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr"));
- for (int memberNameCount = 1; memberNameCount < elements.size(); memberNameCount++) {
- String gridMemberName = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberNameCount + 1) + "]/td[2]")).getText();
- String memberName = JMXProperties.getInstance().getProperty("member.M" + memberNameCount + ".member");
- Assert.assertEquals(gridMemberName, memberName);
- }
- }
-
-
- @Test
- public void testClusterGridViewMemberHost() {
- searchByIdAndClick("default_grid_button");
- List<WebElement> elements = driver.findElements(By.xpath("//table[@id='memberList']/tbody/tr"));
- for (int memberHostCount = 1; memberHostCount < elements.size(); memberHostCount++) {
- String MemberHost = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (memberHostCount + 1) + "]/td[3]")).getText();
- String gridMemberHost = JMXProperties.getInstance().getProperty("member.M" + memberHostCount + ".host");
- Assert.assertEquals(gridMemberHost, MemberHost);
- }
- }
-
- @Test
- public void testClusterGridViewHeapUsage() {
- searchByIdAndClick("default_grid_button");
- for (int i = 1; i <= 3; i++) {
- Float HeapUsage = Float.parseFloat(driver
- .findElement(
- By.xpath("//table[@id='memberList']/tbody/tr[" + (i + 1) + "]/td[5]")).getText());
- Float gridHeapUsagestring = Float.parseFloat(JMXProperties.getInstance()
- .getProperty("member.M" + i + ".UsedMemory"));
- Assert.assertEquals(gridHeapUsagestring, HeapUsage);
- }
- }
-
- @Test
- public void testClusterGridViewCPUUsage() {
- searchByIdAndClick("default_grid_button");
- for (int i = 1; i <= 3; i++) {
- String CPUUsage = driver.findElement(By.xpath("//table[@id='memberList']/tbody/tr[" + (i + 1) + "]/td[6]")).getText();
- String gridCPUUsage = JMXProperties.getInstance().getProperty("member.M" + i + ".cpuUsage");
- gridCPUUsage = gridCPUUsage.trim();
- Assert.assertEquals(gridCPUUsage, CPUUsage);
- }
- }
-
-
- public void testRgraphWidget() throws InterruptedException {
- searchByIdAndClick("default_rgraph_button");
- Thread.sleep(7000);
- searchByIdAndClick("h1");
- Thread.sleep(500);
- searchByIdAndClick("M1");
- Thread.sleep(7000);
- }
-
- @Test // region count in properties file is 2 and UI is 1
- public void testMemberTotalRegionCount() throws InterruptedException{
- testRgraphWidget();
- String RegionCount = driver.findElement(By.id(MEMBER_VIEW_REGION_ID)).getText();
- String memberRegionCount = JMXProperties.getInstance().getProperty("member.M1.totalRegionCount");
- Assert.assertEquals(memberRegionCount, RegionCount);
- }
-
- @Test
- public void testMemberNumThread()throws InterruptedException {
- String ThreadCount = driver.findElement(By.id(MEMBER_VIEW_THREAD_ID)).getText();
- String memberThreadCount = JMXProperties.getInstance().getProperty("member.M1.numThreads");
- Assert.assertEquals(memberThreadCount, ThreadCount);
- }
-
- @Test
- public void testMemberTotalFileDescriptorOpen() throws InterruptedException {
- String SocketCount = driver.findElement(By.id(MEMBER_VIEW_SOCKETS_ID))
- .getText();
- String memberSocketCount = JMXProperties.getInstance().getProperty(
- "member.M1.totalFileDescriptorOpen");
- Assert.assertEquals(memberSocketCount, SocketCount);
- }
-
- @Test
- public void testMemberLoadAverage() throws InterruptedException {
- String LoadAvg = driver.findElement(By.id(MEMBER_VIEW_LOADAVG_ID))
- .getText();
- String memberLoadAvg = JMXProperties.getInstance().getProperty(
- "member.M1.loadAverage");
- Assert.assertEquals(memberLoadAvg, LoadAvg);
- }
-
- @Ignore("WIP") // May be useful in near future
- @Test
- public void testOffHeapFreeSize(){
-
- String OffHeapFreeSizeString = driver.findElement(
- By.id(MEMBER_VIEW_OFFHEAPFREESIZE_ID)).getText();
- String OffHeapFreeSizetemp = OffHeapFreeSizeString.replaceAll("[a-zA-Z]",
- "");
- float OffHeapFreeSize = Float.parseFloat(OffHeapFreeSizetemp);
- float memberOffHeapFreeSize = Float.parseFloat(JMXProperties.getInstance()
- .getProperty("member.M1.OffHeapFreeSize"));
- if (memberOffHeapFreeSize < 1048576) {
- memberOffHeapFreeSize = memberOffHeapFreeSize / 1024;
-
- } else if (memberOffHeapFreeSize < 1073741824) {
- memberOffHeapFreeSize = memberOffHeapFreeSize / 1024 / 1024;
- } else {
- memberOffHeapFreeSize = memberOffHeapFreeSize / 1024 / 1024 / 1024;
- }
- memberOffHeapFreeSize = Float.parseFloat(new DecimalFormat("##.##")
- .format(memberOffHeapFreeSize));
- Assert.assertEquals(memberOffHeapFreeSize, OffHeapFreeSize);
-
- }
-
- @Ignore("WIP") // May be useful in near future
- @Test
- public void testOffHeapUsedSize() throws InterruptedException {
-
- String OffHeapUsedSizeString = driver.findElement(
- By.id(MEMBER_VIEW_OFFHEAPUSEDSIZE_ID)).getText();
- String OffHeapUsedSizetemp = OffHeapUsedSizeString.replaceAll("[a-zA-Z]",
- "");
- float OffHeapUsedSize = Float.parseFloat(OffHeapUsedSizetemp);
- float memberOffHeapUsedSize = Float.parseFloat(JMXProperties.getInstance()
- .getProperty("member.M1.OffHeapUsedSize"));
- if (memberOffHeapUsedSize < 1048576) {
- memberOffHeapUsedSize = memberOffHeapUsedSize / 1024;
-
- } else if (memberOffHeapUsedSize < 1073741824) {
- memberOffHeapUsedSize = memberOffHeapUsedSize / 1024 / 1024;
- } else {
- memberOffHeapUsedSize = memberOffHeapUsedSize / 1024 / 1024 / 1024;
- }
- memberOffHeapUsedSize = Float.parseFloat(new DecimalFormat("##.##")
- .format(memberOffHeapUsedSize));
- Assert.assertEquals(memberOffHeapUsedSize, OffHeapUsedSize);
- }
-
- @Test
- public void testMemberJVMPauses(){
-
- String JVMPauses = driver.findElement(By.id(MEMBER_VIEW_JVMPAUSES_ID))
- .getText();
- String memberGcPausesAvg = JMXProperties.getInstance().getProperty(
- "member.M1.JVMPauses");
- Assert.assertEquals(memberGcPausesAvg, JVMPauses);
- }
-
- @Test
- public void testMemberCPUUsage() {
- String CPUUsagevalue = driver.findElement(By.id(MEMBER_VIEW_CPUUSAGE_ID))
- .getText();
- String memberCPUUsage = JMXProperties.getInstance().getProperty(
- "member.M1.cpuUsage");
- Assert.assertEquals(memberCPUUsage, CPUUsagevalue);
- }
-
- @Test // difference between UI and properties file
- public void testMemberAverageReads() {
- float ReadPerSec = Float.parseFloat(driver.findElement(By.id(MEMBER_VIEW_READPERSEC_ID)).getText());
- float memberReadPerSec = Float.parseFloat(JMXProperties.getInstance().getProperty("member.M1.averageReads"));
- memberReadPerSec = Float.parseFloat(new DecimalFormat("##.##")
- .format(memberReadPerSec));
- Assert.assertEquals(memberReadPerSec, ReadPerSec);
- }
-
- @Test
- public void testMemberAverageWrites() throws InterruptedException {
- String WritePerSec = driver.findElement(By.id(MEMBER_VIEW_WRITEPERSEC_ID))
- .getText();
- String memberWritePerSec = JMXProperties.getInstance().getProperty(
- "member.M1.averageWrites");
- Assert.assertEquals(memberWritePerSec, WritePerSec);
- }
-
-
- @Test
- public void testMemberGridViewData() throws InterruptedException {
- searchByXPathAndClick(PulseTestLocators.TopNavigation.clusterViewLinkXpath);
- testRgraphWidget();
- searchByXPathAndClick(PulseTestLocators.MemberDetailsView.gridButtonXpath);
- // get the number of rows on the grid
- List<WebElement> noOfRows = driver.findElements(By.xpath("//table[@id='memberRegionsList']/tbody/tr"));
- String MemberRegionName = driver.findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[1]")).getText();
- String memberRegionName = JMXProperties.getInstance().getProperty("region.R1.name");
- Assert.assertEquals(memberRegionName, MemberRegionName);
-
- String MemberRegionType = driver.findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[2]")).getText();
- String memberRegionType = JMXProperties.getInstance().getProperty("region.R1.regionType");
- Assert.assertEquals(memberRegionType, MemberRegionType);
-
- String MemberRegionEntryCount = driver.findElement(By.xpath("//table[@id='memberRegionsList']/tbody/tr[2]/td[3]")).getText();
- String memberRegionEntryCount = JMXProperties.getInstance().getProperty("regionOnMember./R1.M1.entryCount");
- Assert.assertEquals(memberRegionEntryCount, MemberRegionEntryCount);
- }
-
-@Test
- public void testDropDownList() throws InterruptedException {
- searchByIdAndClick("memberName");
- searchByLinkAndClick("M3");
- searchByIdAndClick("memberName");
- searchByLinkAndClick("M2");
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewRegionName() throws InterruptedException {
- searchByLinkAndClick(DATA_VIEW_LABEL);
- Thread.sleep(7000);
- searchByIdAndClick("default_grid_button");
- String regionName = driver.findElement(By.id(REGION_NAME_LABEL)).getText();
- String dataviewregionname = JMXProperties.getInstance().getProperty("region.R1.name");
- Assert.assertEquals(dataviewregionname, regionName);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewRegionPath() {
- String regionPath = driver.findElement(By.id(REGION_PATH_LABEL)).getText();
- String dataviewregionpath = JMXProperties.getInstance().getProperty(
- "region.R1.fullPath");
- Assert.assertEquals(dataviewregionpath, regionPath);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewRegionType() {
- String regionType = driver.findElement(By.id(REGION_TYPE_LABEL)).getText();
- String dataviewregiontype = JMXProperties.getInstance().getProperty(
- "region.R1.regionType");
- Assert.assertEquals(dataviewregiontype, regionType);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewEmptyNodes() {
- String regionEmptyNodes = driver.findElement(By.id(DATA_VIEW_EMPTYNODES))
- .getText();
- String dataviewEmptyNodes = JMXProperties.getInstance().getProperty(
- "region.R1.emptyNodes");
- Assert.assertEquals(dataviewEmptyNodes, regionEmptyNodes);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewSystemRegionEntryCount() {
- String regionEntryCount = driver.findElement(By.id(DATA_VIEW_ENTRYCOUNT))
- .getText();
- String dataviewEntryCount = JMXProperties.getInstance().getProperty(
- "region.R1.systemRegionEntryCount");
- Assert.assertEquals(dataviewEntryCount, regionEntryCount);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewPersistentEnabled() {
- String regionPersistence = driver.findElement(
- By.id(REGION_PERSISTENCE_LABEL)).getText();
- String dataviewregionpersistence = JMXProperties.getInstance().getProperty(
- "region.R1.persistentEnabled");
- Assert.assertEquals(dataviewregionpersistence, regionPersistence);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewDiskWritesRate() {
- String regionWrites = driver.findElement(By.id(DATA_VIEW_WRITEPERSEC))
- .getText();
- String dataviewRegionWrites = JMXProperties.getInstance().getProperty(
- "region.R1.diskWritesRate");
- Assert.assertEquals(dataviewRegionWrites, regionWrites);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewDiskReadsRate() {
- String regionReads = driver.findElement(By.id(DATA_VIEW_READPERSEC))
- .getText();
- String dataviewRegionReads = JMXProperties.getInstance().getProperty(
- "region.R1.diskReadsRate");
- Assert.assertEquals(dataviewRegionReads, regionReads);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewDiskUsage() {
- String regionMemoryUsed = driver.findElement(By.id(DATA_VIEW_USEDMEMORY))
- .getText();
- String dataviewMemoryUsed = JMXProperties.getInstance().getProperty(
- "region.R1.diskUsage");
- Assert.assertEquals(dataviewMemoryUsed, regionMemoryUsed);
- searchByLinkAndClick(QUERY_STATISTICS_LABEL);
- }
-
- @Ignore("WIP")
- @Test
- public void testDataViewGridValue() {
- String DataViewRegionName = driver.findElement(
- By.xpath("//*[id('6')/x:td[1]]")).getText();
- String dataViewRegionName = JMXProperties.getInstance().getProperty(
- "region.R1.name");
- Assert.assertEquals(dataViewRegionName, DataViewRegionName);
-
- String DataViewRegionType = driver.findElement(
- By.xpath("//*[id('6')/x:td[2]")).getText();
- String dataViewRegionType = JMXProperties.getInstance().getProperty(
- "region.R2.regionType");
- Assert.assertEquals(dataViewRegionType, DataViewRegionType);
-
- String DataViewEntryCount = driver.findElement(
- By.xpath("//*[id('6')/x:td[3]")).getText();
- String dataViewEntryCount = JMXProperties.getInstance().getProperty(
- "region.R2.systemRegionEntryCount");
- Assert.assertEquals(dataViewEntryCount, DataViewEntryCount);
-
- String DataViewEntrySize = driver.findElement(
- By.xpath("//*[id('6')/x:td[4]")).getText();
- String dataViewEntrySize = JMXProperties.getInstance().getProperty(
- "region.R2.entrySize");
- Assert.assertEquals(dataViewEntrySize, DataViewEntrySize);
-
- }
-
-
- public void loadDataBrowserpage() {
- searchByLinkAndClick(DATA_BROWSER_LABEL);
- //Thread.sleep(7000);
- }
-
- @Test
- public void testDataBrowserRegionName() throws InterruptedException {
- loadDataBrowserpage();
- String DataBrowserRegionName1 = driver.findElement(By.id(DATA_BROWSER_REGIONName1))
- .getText();
- String databrowserRegionNametemp1 = JMXProperties.getInstance().getProperty(
- "region.R1.name");
- String databrowserRegionName1 = databrowserRegionNametemp1.replaceAll("[\\/]", "");
- Assert.assertEquals(databrowserRegionName1, DataBrowserRegionName1);
-
- String DataBrowserRegionName2 = driver.findElement(By.id(DATA_BROWSER_REGIONName2))
- .getText();
- String databrowserRegionNametemp2 = JMXProperties.getInstance().getProperty(
- "region.R2.name");
- String databrowserRegionName2 = databrowserRegionNametemp2.replaceAll("[\\/]", "");
- Assert.assertEquals(databrowserRegionName2, DataBrowserRegionName2);
-
- String DataBrowserRegionName3 = driver.findElement(By.id(DATA_BROWSER_REGIONName3))
- .getText();
- String databrowserRegionNametemp3 = JMXProperties.getInstance().getProperty(
- "region.R3.name");
- String databrowserRegionName3 = databrowserRegionNametemp3.replaceAll("[\\/]", "");
- Assert.assertEquals(databrowserRegionName3, DataBrowserRegionName3);
-
- }
-
- @Test
- public void testDataBrowserRegionMembersVerificaition() throws InterruptedException {
- loadDataBrowserpage();
- searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
- String DataBrowserMember1Name1 = driver.findElement(By.xpath("//label[@for='Member0']"))
- .getText();
- String DataBrowserMember1Name2 = driver.findElement(By.xpath("//label[@for='Member1']"))
- .getText();
- String DataBrowserMember1Name3 = driver.findElement(By.xpath("//label[@for='Member2']"))
- .getText();
- String databrowserMember1Names = JMXProperties.getInstance().getProperty(
- "region.R1.members");
-
- String databrowserMember1Names1 = databrowserMember1Names.substring(0, 2);
- Assert.assertEquals(databrowserMember1Names1, DataBrowserMember1Name1);
-
- String databrowserMember1Names2 = databrowserMember1Names.substring(3, 5);
- Assert.assertEquals(databrowserMember1Names2, DataBrowserMember1Name2);
-
- String databrowserMember1Names3 = databrowserMember1Names.substring(6, 8);
- Assert.assertEquals(databrowserMember1Names3, DataBrowserMember1Name3);
- searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
-
- searchByIdAndClick(DATA_BROWSER_REGION2_CHECKBOX);
- String DataBrowserMember2Name1 = driver.findElement(By.xpath("//label[@for='Member0']"))
- .getText();
- String DataBrowserMember2Name2 = driver.findElement(By.xpath("//label[@for='Member1']"))
- .getText();
- String databrowserMember2Names = JMXProperties.getInstance().getProperty(
- "region.R2.members");
-
- String databrowserMember2Names1 = databrowserMember2Names.substring(0, 2);
- Assert.assertEquals(databrowserMember2Names1, DataBrowserMember2Name1);
-
- String databrowserMember2Names2 = databrowserMember2Names.substring(3, 5);
- Assert.assertEquals(databrowserMember2Names2, DataBrowserMember2Name2);
- searchByIdAndClick(DATA_BROWSER_REGION2_CHECKBOX);
-
- searchByIdAndClick(DATA_BROWSER_REGION3_CHECKBOX);
- String DataBrowserMember3Name1 = driver.findElement(By.xpath("//label[@for='Member0']"))
- .getText();
- String DataBrowserMember3Name2 = driver.findElement(By.xpath("//label[@for='Member1']"))
- .getText();
- String databrowserMember3Names = JMXProperties.getInstance().getProperty(
- "region.R3.members");
-
- String databrowserMember3Names1 = databrowserMember3Names.substring(0, 2);
- Assert.assertEquals(databrowserMember3Names1, DataBrowserMember3Name1);
-
- String databrowserMember3Names2 = databrowserMember3Names.substring(3, 5);
- Assert.assertEquals(databrowserMember3Names2, DataBrowserMember3Name2);
- searchByIdAndClick(DATA_BROWSER_REGION3_CHECKBOX);
- }
-
- @Test
- public void testDataBrowserColocatedRegions() throws InterruptedException {
- loadDataBrowserpage();
- String databrowserMemberNames1 = JMXProperties.getInstance().getProperty(
- "region.R1.members");
- String databrowserMemberNames2 = JMXProperties.getInstance().getProperty(
- "region.R2.members");
- String databrowserMemberNames3 = JMXProperties.getInstance().getProperty(
- "region.R3.members");
-
- if((databrowserMemberNames1.matches(databrowserMemberNames2+"(.*)"))) {
- if((databrowserMemberNames1.matches(databrowserMemberNames3+"(.*)"))) {
- if((databrowserMemberNames2.matches(databrowserMemberNames3+"(.*)"))) {
- System.out.println("R1, R2 and R3 are colocated regions");
- }
- }
- }
- searchByIdAndClick(DATA_BROWSER_REGION1_CHECKBOX);
- searchByLinkAndClick(DATA_BROWSER_COLOCATED_REGION);
- String DataBrowserColocatedRegion1 = driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME1))
- .getText();
- String DataBrowserColocatedRegion2 = driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME2))
- .getText();
- String DataBrowserColocatedRegion3 = driver.findElement(By.id(DATA_BROWSER_COLOCATED_REGION_NAME3))
- .getText();
-
- String databrowserColocatedRegiontemp1 = JMXProperties.getInstance().getProperty(
- "region.R1.name");
- String databrowserColocatedRegion1 = databrowserColocatedRegiontemp1.replaceAll("[\\/]", "");
-
- String databrowserColocatedRegiontemp2 = JMXProperties.getInstance().getProperty(
- "region.R2.name");
- String databrowserColocatedRegion2 = databrowserColocatedRegiontemp2.replaceAll("[\\/]", "");
-
- String databrowserColocatedRegiontemp3 = JMXProperties.getInstance().getProperty(
- "region.R3.name");
- String databrowserColocatedRegion3 = databrowserColocatedRegiontemp3.replaceAll("[\\/]", "");
-
- Assert.assertEquals(databrowserColocatedRegion1, DataBrowserColocatedRegion1);
- Assert.assertEquals(databrowserColocatedRegion2, DataBrowserColocatedRegion2);
- Assert.assertEquals(databrowserColocatedRegion3, DataBrowserColocatedRegion3);
-
- }
-
- @Ignore("WIP") // clusterDetails element not found on Data Browser page. No assertions in test
- @Test
- public void testDataBrowserQueryValidation() throws IOException, InterruptedException {
- loadDataBrowserpage();
- WebElement textArea = driver.findElement(By.id("dataBrowserQueryText"));
- textArea.sendKeys("query1");
- WebElement executeButton = driver.findElement(By.id("btnExecuteQuery"));
- executeButton.click();
- String QueryResultHeader1 = driver.findElement(By.xpath("//div[@id='clusterDetails']/div/div/span[@class='n-title']")).getText();
- double count = 0,countBuffer=0,countLine=0;
- String lineNumber = "";
- String filePath = "E:\\springsource\\springsourceWS\\Pulse-Cedar\\src\\main\\resources\\testQueryResultSmall.txt";
- BufferedReader br;
- String line = "";
- br = new BufferedReader(new FileReader(filePath));
- while((line = br.readLine()) != null)
- {
- countLine++;
- String[] words = line.split(" ");
-
- for (String word : words) {
- if (word.equals(QueryResultHeader1)) {
- count++;
- countBuffer++;
- }
- }
- }
- }
-
- public void testTreeMapPopUpData(String S1, String gridIcon) {
- for (int i = 1; i <=3; i++) {
- searchByLinkAndClick(CLUSTER_VIEW_LABEL);
- if (gridIcon.equals(SERVER_GROUP_GRID_ID)) {
- WebElement ServerGroupRadio = driver.findElement(By.xpath("//label[@for='radio-servergroups']"));
- ServerGroupRadio.click();
- }
- if (gridIcon.equals(REDUNDANCY_GRID_ID)) {
- WebElement ServerGroupRadio = driver.findElement(By.xpath("//label[@for='radio-redundancyzones']"));
- ServerGroupRadio.click();
- }
- searchByIdAndClick(gridIcon);
- WebElement TreeMapMember = driver.findElement(By.xpath("//div[@id='" + S1 + "M"+ (i) + "']/div"));
- Actions builder = new Actions(driver);
- builder.clickAndHold(TreeMapMember).perform();
- int j = 1;
- String CPUUsageM1temp = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div/div[2]/div"))
- .getText();
- String CPUUsageM1 = CPUUsageM1temp.replaceAll("[\\%]", "");
- String cpuUsageM1 = JMXProperties.getInstance().getProperty(
- "member.M" + (i) + ".cpuUsage");
- Assert.assertEquals(cpuUsageM1, CPUUsageM1);
-
- String MemoryUsageM1temp = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 1) + "]/div[2]/div"))
- .getText();
- String MemoryUsageM1 = MemoryUsageM1temp.replaceAll("MB", "");
- String memoryUsageM1 = JMXProperties.getInstance().getProperty(
- "member.M" + (i) + ".UsedMemory");
- Assert.assertEquals(memoryUsageM1, MemoryUsageM1);
-
- String LoadAvgM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 2) + "]/div[2]/div"))
- .getText();
- String loadAvgM1 = JMXProperties.getInstance().getProperty(
- "member.M" + (i) + ".loadAverage");
- Assert.assertEquals(loadAvgM1, LoadAvgM1);
-
-
- String ThreadsM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 3) + "]/div[2]/div"))
- .getText();
- String threadsM1 = JMXProperties.getInstance().getProperty(
- "member.M" + (i) + ".numThreads");
- Assert.assertEquals(threadsM1, ThreadsM1);
-
- String SocketsM1 = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[" + (j + 4) + "]/div[2]/div"))
- .getText();
- String socketsM1 = JMXProperties.getInstance().getProperty(
- "member.M" + (i) + ".totalFileDescriptorOpen");
- Assert.assertEquals(socketsM1, SocketsM1);
- builder.moveToElement(TreeMapMember).release().perform();
- }
- }
-
- @Test
- public void testTopologyPopUpData() {
- testTreeMapPopUpData("", CLUSTER_VIEW_GRID_ID);
- }
-
- @Test
- public void testServerGroupTreeMapPopUpData() {
- testTreeMapPopUpData("SG1(!)", SERVER_GROUP_GRID_ID);
- }
-
- @Test
- public void testDataViewTreeMapPopUpData() {
- searchByLinkAndClick(CLUSTER_VIEW_LABEL);
- searchByLinkAndClick(DATA_DROPDOWN_ID);
- WebElement TreeMapMember = driver.findElement(By.id("GraphTreeMapClusterData-canvas"));
- Actions builder = new Actions(driver);
- builder.clickAndHold(TreeMapMember).perform();
- String RegionType = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div/div[2]/div"))
- .getText();
- String regionType = JMXProperties.getInstance().getProperty(
- "region.R2.regionType");
- Assert.assertEquals(regionType, RegionType);
-
- String EntryCount = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[2]/div[2]/div"))
- .getText();
- String entryCount = JMXProperties.getInstance().getProperty(
- "region.R2.systemRegionEntryCount");
- Assert.assertEquals(entryCount, EntryCount);
-
- String EntrySizetemp = driver.findElement(By.xpath("//div[@id='_tooltip']/div/div/div[2]/div[3]/div[2]/div"))
- .getText();
- float EntrySize = Float.parseFloat(EntrySizetemp);
- float entrySize = Float.parseFloat(JMXProperties.getInstance().getProperty(
- "region.R2.entrySize"));
- entrySize = entrySize / 1024 / 1024;
- entrySize = Float.parseFloat(new DecimalFormat("##.####")
- .format(entrySize));
- Assert.assertEquals(entrySize, EntrySize);
- builder.moveToElement(TreeMapMember).release().perform();
- }
-
- @Test
- public void testRegionViewTreeMapPopUpData() {
- searchByLinkAndClick(CLUSTER_VIEW_LABEL);
- searchByLinkAndClick(DATA_DROPDOWN_ID);
- WebElement TreeMapMember = driver.findElement(By.id("GraphTreeMapClusterData-canvas"));
- TreeMapMember.click();
- }
-
- @Ignore("WIP")
- @Test
- public void testNumberOfRegions() throws InterruptedException{
-
- driver.findElement(By.xpath("//a[text()='Data Browser']")).click();
-
- Thread.sleep(1000);
- List<WebElement> regionList = driver.findElements(By.xpath("//ul[@id='treeDemo']/li"));
- String regions = JMXProperties.getInstance().getProperty("regions");
- String []regionName = regions.split(" ");
- for (String string : regionName) {
- }
- //JMXProperties.getInstance().getProperty("region.R1.regionType");
- int i=1;
- for (WebElement webElement : regionList) {
- //webElement.getAttribute(arg0)
- i++;
- }
-
- driver.findElement(By.id("treeDemo_1_check")).click();
-
- List<WebElement> memeberList = driver.findElements(By.xpath("//ul[@id='membersList']/li"));
- int j=0;
- for (WebElement webElement : memeberList) {
- j++;
- }
- }
-
- @Ignore("WIP")
- @Test
- public void testDataBrowser(){
-
- driver.findElement(By.linkText("Data Browser")).click();
- // WebElement dataBrowserLabel = driver.findElement(By.xpath(""));
- WebDriverWait wait = new WebDriverWait(driver, 20);
- wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//label[text()='Data Browser']"))));
-
-
- // Verify all elements must be displayed on data browser screen
- Assert.assertTrue(driver.findElement(By.xpath("//a[text()='Data Regions']")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.id("linkColocatedRegions")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.linkText("All Regions")).isDisplayed());
-
- Assert.assertTrue(driver.findElement(By.xpath("//a[text()='Region Members']")).isDisplayed());
-
- Assert.assertTrue(driver.findElement(By.xpath("//a[text()='Queries']")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.xpath("//label[text()='Query Editor']")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.xpath("//label[text()='Result']")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.xpath("//input[@value='Export Result']")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.id("btnExecuteQuery")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.xpath("//input[@value='Clear']")).isDisplayed());
- Assert.assertTrue(driver.findElement(By.id("dataBrowserQueryText")).isDisplayed());
-
- Assert.assertTrue(driver.findElement(By.id("historyIcon")).isDisplayed());
-
- //Actual query execution
-
- driver.findElement(By.id("dataBrowserQueryText")).sendKeys("Query1");
-
- // Assert data regions are displayed
- Assert.assertTrue(driver.findElement(By.id("treeDemo_1")).isDisplayed());
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fed95002/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Server.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Server.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Server.java
index d84d0df..86504b0 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Server.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/Server.java
@@ -28,7 +28,6 @@ import org.json.JSONException;
import javax.management.InstanceAlreadyExistsException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
@@ -36,35 +35,48 @@ import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;
import java.io.IOException;
+import java.lang.management.ManagementFactory;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class Server {
private static final String DEFAULT_HOST = "127.0.0.1"; //"localhost"
private static final int DEFAULT_PORT = 9999;
- private final MBeanServer mbs;
private final JMXServiceURL url;
- private final JMXConnectorServer cs;
+ private MBeanServer mbs;
+ private JMXConnectorServer cs;
private String propFile = null;
- public Server(int port, String properties, boolean secure) throws IOException, JSONException {
- Properties props = new Properties();
- props.put(DistributionConfig.SECURITY_CLIENT_AUTHENTICATOR_NAME, JSONAuthorization.class.getName() + ".create");
- props.put(DistributionConfig.SECURITY_CLIENT_ACCESSOR_NAME, JSONAuthorization.class.getName() + ".create");
- JSONAuthorization.setUpWithJsonFile("cacheServer.json");
- ManagementInterceptor interceptor = new ManagementInterceptor(props);
- MBeanServerWrapper wrapper = new MBeanServerWrapper(interceptor);
+ public Server(int port, String properties, String jsonAuthFile) throws IOException, JSONException {
+ this.propFile = properties;
+ mbs = ManagementFactory.getPlatformMBeanServer();
+ url = new JMXServiceURL(formJMXServiceURLString(DEFAULT_HOST, port));
+
+ // Load the beans first, otherwise we get access denied
+ loadMBeans();
- if(secure){
- //System.setProperty(JMXConnectorServer.AUTHENTICATOR, interceptor);
+ if (jsonAuthFile != null) {
+ Properties props = new Properties();
+ props.put(DistributionConfig.SECURITY_CLIENT_AUTHENTICATOR_NAME, JSONAuthorization.class.getName() + ".create");
+ props.put(DistributionConfig.SECURITY_CLIENT_ACCESSOR_NAME, JSONAuthorization.class.getName() + ".create");
+ JSONAuthorization.setUpWithJsonFile(jsonAuthFile);
+ Map<String, Object> env = new HashMap<>();
+
+ ManagementInterceptor interceptor = new ManagementInterceptor(props);
+ env.put(JMXConnectorServer.AUTHENTICATOR, interceptor);
+ cs = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbs);
+ cs.setMBeanServerForwarder(new MBeanServerWrapper(interceptor));
+ } else {
+ cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
}
try {
-
java.rmi.registry.LocateRegistry.createRegistry(port);
System.out.println("RMI registry ready.");
} catch (Exception e) {
@@ -72,37 +84,19 @@ public class Server {
e.printStackTrace();
}
- this.propFile = properties;
- mbs = MBeanServerFactory.createMBeanServer();
- url = new JMXServiceURL(formJMXServiceURLString(DEFAULT_HOST, "" + port));
- cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
-
- if(secure) {
- cs.setMBeanServerForwarder(wrapper);
- }
-
cs.start();
-
- loadMBeans();
}
- private String formJMXServiceURLString(String host, String port)
- throws UnknownHostException {
- /*
- * String jmxSerURL = "service:jmx:rmi://" + serverName + "/jndi/rmi://" +
- * serverName + ":" + port + "/jmxrmi";
- */
+ private String formJMXServiceURLString(String host, int port) throws UnknownHostException {
String jmxSerURL = "";
InetAddress inetAddr = InetAddress.getByName(host);
if (inetAddr instanceof Inet4Address) {
// Create jmx service url for IPv4 address
- jmxSerURL = "service:jmx:rmi://" + host + "/jndi/rmi://" + host + ":"
- + port + "/jmxrmi";
+ jmxSerURL = "service:jmx:rmi://" + host + "/jndi/rmi://" + host + ":" + port + "/jmxrmi";
} else if (inetAddr instanceof Inet6Address) {
// Create jmx service url for IPv6 address
- jmxSerURL = "service:jmx:rmi://[" + host + "]/jndi/rmi://[" + host + "]:"
- + port + "/jmxrmi";
+ jmxSerURL = "service:jmx:rmi://[" + host + "]/jndi/rmi://[" + host + "]:" + port + "/jmxrmi";
}
return jmxSerURL;
@@ -117,8 +111,6 @@ public class Server {
}
private synchronized void loadMBeans() {
- unregisterAll();
-
JMXProperties props = JMXProperties.getInstance();
try {
props.load(propFile);
@@ -181,41 +173,33 @@ public class Server {
}
}
- private void addMemberMBean(String m) throws InstanceAlreadyExistsException,
- MBeanRegistrationException, NotCompliantMBeanException,
- MalformedObjectNameException, NullPointerException {
+ private void addMemberMBean(
+ String m) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, MalformedObjectNameException, NullPointerException {
Member m1 = new Member(m);
mbs.registerMBean(m1, new ObjectName(Member.OBJECT_NAME + ",member=" + m));
}
// For GemFire XD
- private void addGemFireXDMemberMBean(String xdm)
- throws InstanceAlreadyExistsException, MBeanRegistrationException,
- NotCompliantMBeanException, MalformedObjectNameException,
- NullPointerException {
+ private void addGemFireXDMemberMBean(
+ String xdm) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, MalformedObjectNameException, NullPointerException {
GemFireXDMember xdmo = new GemFireXDMember(xdm);
- mbs.registerMBean(xdmo, new ObjectName(GemFireXDMember.OBJECT_NAME
- + ",member=" + xdm));
+ mbs.registerMBean(xdmo, new ObjectName(GemFireXDMember.OBJECT_NAME + ",member=" + xdm));
}
- private void addRegionMBean(String reg)
- throws InstanceAlreadyExistsException, MBeanRegistrationException,
- NotCompliantMBeanException, MalformedObjectNameException,
- NullPointerException {
+ private void addRegionMBean(
+ String reg) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, MalformedObjectNameException, NullPointerException {
Region regionObject = new Region(reg);
mbs.registerMBean(regionObject, new ObjectName(Region.OBJECT_NAME + ",name=/" + reg));
for (String member : regionObject.getMembers()) {
RegionOnMember regionOnMemberObject = new RegionOnMember(regionObject.getFullPath(), member);
mbs.registerMBean(regionOnMemberObject, new ObjectName(
- PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObject.getFullPath() + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + member));
+ PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObject.getFullPath() + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + member));
}
}
- private void addServerMBean(String server)
- throws InstanceAlreadyExistsException, MBeanRegistrationException,
- NotCompliantMBeanException, MalformedObjectNameException,
- NullPointerException {
+ private void addServerMBean(
+ String server) throws InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, MalformedObjectNameException, NullPointerException {
ServerObject so = new ServerObject(server);
mbs.registerMBean(so, new ObjectName(ServerObject.OBJECT_NAME));
}
@@ -225,45 +209,11 @@ public class Server {
return propVal.split(" ");
}
- private void unregisterAll() {
- Set<ObjectName> thisSet = mbs.queryNames(null, null);
- for (ObjectName objectName : thisSet) {
-// System.out.println("Removing ..." + objectName.getCanonicalName());
-
- /*try {
- mbs.unregisterMBean(objectName);
- } catch (MBeanRegistrationException e) {
- e.printStackTrace();
- } catch (InstanceNotFoundException e) {
- e.printStackTrace();
- }*/
- }
- }
-
- public static void main(String[] args) throws MalformedObjectNameException,
- NullPointerException {
- int port = DEFAULT_PORT;
- String props = null;
- if (args.length >= 2) {
- try {
- port = Integer.parseInt(args[0]);
- props = args[1];
-
- } catch (NumberFormatException nfe) {
- port = DEFAULT_PORT;
- props = null;
- nfe.printStackTrace();
- }
- }
-
- createServer(port, props);
- }
-
- public static Server createServer(int port, String properties)
+ public static Server createServer(int port, String properties, String jsonAuthFile)
throws MalformedObjectNameException {
Server s = null;
try {
- s = new Server(port, properties, true);
+ s = new Server(port, properties, jsonAuthFile);
} catch (Exception e) {
e.printStackTrace();
return null;
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/fed95002/geode-pulse/src/test/resources/pulse-auth.json
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/resources/pulse-auth.json b/geode-pulse/src/test/resources/pulse-auth.json
new file mode 100644
index 0000000..248016f
--- /dev/null
+++ b/geode-pulse/src/test/resources/pulse-auth.json
@@ -0,0 +1,21 @@
+{
+ "roles": [
+ {
+ "name": "pulse",
+ "operationsAllowed": [
+ "PULSE:PULSE_DASHBOARD",
+ "PULSE:PULSE_DATABROWSER",
+ "JMX:GET"
+ ]
+ }
+ ],
+ "users": [
+ {
+ "name": "admin",
+ "password": "admin",
+ "roles": [
+ "pulse"
+ ]
+ }
+ ]
+}