Sample Script with Regions Sections

The following sample script shows the regions sections in which you can place your custom code so that it is not overwritten or lost when the script is regenerated. See Regions for more information about the different regions.

package com.testplant.testing;

import java.time.Duration;

import java.util.EnumSet;

import java.util.List;

import java.util.ArrayList;

import com.facilita.fc.runtime.*;

import com.facilita.fc.runtime.backgroundScripting.*;

import com.facilita.util.*;

import com.facilita.exception.*;

import com.facilita.fc.web.*;

import com.facilita.fc.jni.*;

// #region EPP_IMPORTS

// Code added here will be preserved during script regeneration

// #endregion EPP_IMPORTS

public class MyScript extends com.testplant.testing.MyCustomJavaScript

{

// Generated variables

IpEndPoint myWebsite = null; // a parameterized web server address

Protocol protocol = null; // a parameterized protocol

// End of generated variables

// Your global variables

// #region EPP_GLOBAL_VARIABLES

// Code added here will be preserved during script regeneration

// #endregion EPP_GLOBAL_VARIABLES

// End of your global variables

public void pre() throws Exception

{

//do not remove following line

super.pre();

// The following INITIALISATION is executed once only.

// START INITIALISATION CODE

getWebBrowser().setDefaultUserAgent(getString("User-Agent","Mozilla/5.0"));

// END INITIALISATION CODE

// Put any code that needs to execute at the start of the test here

// #region EPP_PRE

// Code added here will be preserved during script regeneration

// #endregion EPP_PRE

}

public void script() throws Exception

{

// This 'script' method is the main method executed by the runtime engine.

myWebsite = new IpEndPoint(getString("myHost", "www.mywebsite.com"), getInt("myPort", 80));

protocol = getProtocol("protocol", "http");

// Actions

// Note: if you have complex logic that you would like to preserve between re-generations of the script,

// you can turn on the "Script Actions" region in the Advanced web script generation options

// #region EPP_ACTIONS

// Code added here will be preserved during script regeneration

Action1_Login();

Action2_Logout();

// #endregion EPP_ACTIONS

// Put your code for finalizing the script here

// #region EPP_SCRIPT

// Code added here will be preserved during script regeneration

// #endregion EPP_SCRIPT

}

void Action1_Login() throws Exception

{

// #region EPP_BEFORE_START_TRANSACTION for Transaction "Login"

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_START_TRANSACTION for Transaction "Login"

startTransaction("Login");

Url url1 = new Url(protocol, myWebsite, "/login");

try (Request request1 = getWebBrowser().createRequest(HttpMethod.GET, url1, 1))

{

// References to the following page resources could not be found within the contents of the received web page.

// This can occur because resources are fetched as a result of style sheets or the browser executing script code e.g. JavaScript.

request1.addSubRequest(protocol, myWebsite, "/image.png"); // Request: 2, 200 OK

// #region EPP_BEFORE_REQUEST_SENT for Request 1

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_REQUEST_SENT for Request 1

try (Response response1 = request1.send())

{

// #region EPP_AFTER_RESPONSE_RECEIVED for Request 1

// Code added here will be preserved during script regeneration

// #endregion EPP_AFTER_RESPONSE_RECEIVED for Request 1

// Rule: Verify that the page title matches what was recorded

response1.verifyTitle("My website", ActionType.ACT_WARNING);

}

}

// #region EPP_BEFORE_END_TRANSACTION for Transaction "Login"

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_END_TRANSACTION for Transaction "Login"

endTransaction("Login");

}

void Action2_Logout() throws Exception

{

// #region EPP_BEFORE_END_TRANSACTION for Transaction "Logout"

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_END_TRANSACTION for Transaction "Logout"

startTransaction("Logout");

Url url3 = new Url(protocol, myWebsite, "/logout");

try (Request request3 = getWebBrowser().createRequest(HttpMethod.GET, url3, 3))

{

// References to the following page resources could not be found within the contents of the received web page.

// This can occur because resources are fetched as a result of style sheets or the browser executing script code e.g. JavaScript.

request3.addSubRequest(protocol, myWebsite, "/image.png"); // Request: 4, 200 OK

// #region EPP_BEFORE_REQUEST_SENT for Request 3

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_REQUEST_SENT for Request 3

try (Response response3 = request3.send())

{

// #region EPP_AFTER_RESPONSE_RECEIVED for Request 3

// Code added here will be preserved during script regeneration

// #endregion EPP_AFTER_RESPONSE_RECEIVED for Request 3

// Rule: Verify that the page title matches what was recorded

response3.verifyTitle("My website", ActionType.ACT_WARNING);

}

}

// #region EPP_BEFORE_END_TRANSACTION for Transaction "Logout"

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_END_TRANSACTION for Transaction "Logout"

endTransaction("Logout");

}

}

Sample WebSockets Script with Regions Sections

The following sample WebSockets script shows the regions sections in which you can place your custom code so that it is not overwritten or lost when the script is regenerated. See Regions for more information about the different regions.

package com.testplant.testing;

import java.time.Duration;

import java.util.EnumSet;

import java.util.List;

import java.util.ArrayList;

import com.facilita.fc.runtime.*;

import com.facilita.fc.runtime.backgroundScripting.*;

import com.facilita.util.*;

import com.facilita.exception.*;

import com.facilita.fc.web.*;

import com.facilita.fc.jni.*;

// #region EPP_IMPORTS

// Code added here will be preserved during script regeneration

// #endregion EPP_IMPORTS

public class MyWebSocketScript extends com.testplant.testing.MyCustomJavaScript

{

// Generated variables

IpEndPoint myWebsite = null; // a parameterized web server address

Protocol protocol = null; // a parameterized protocol

// End of generated variables

// Your global variables

// #region EPP_GLOBAL_VARIABLES

// Code added here will be preserved during script regeneration

// #endregion EPP_GLOBAL_VARIABLES

// End of your global variables

public void pre() throws Exception

{

//do not remove following line

super.pre();

// The following INITIALISATION is executed once only.

// START INITIALISATION CODE

getWebBrowser().setDefaultUserAgent(getString("User-Agent","Mozilla/5.0"));

// END INITIALISATION CODE

// Put any code that needs to execute at the start of the test here

// #region EPP_PRE

// Code added here will be preserved during script regeneration

// #endregion EPP_PRE

}

public void script() throws Exception

{

// This 'script' method is the main method executed by the runtime engine.

myWebsite = new IpEndPoint(getString("myHost", "www.mywebsite.com"), getInt("myPort", 80));

protocol = getProtocol("protocol1", "http");

// Actions

// Note: if you have complex logic that you would like to preserve between re-generations of the script,

// you can turn on the "Script Actions" region in the Advanced web script generation options

// #region EPP_ACTIONS

// Code added here will be preserved during script regeneration

Action1_Start();

// #endregion EPP_ACTIONS

// Put your code for finalizing the script here

// #region EPP_SCRIPT

// Code added here will be preserved during script regeneration

// #endregion EPP_SCRIPT

}

void Action1_Start() throws Exception

{

// #region EPP_BEFORE_START_TRANSACTION "Start"

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_START_TRANSACTION for Transaction "Start"

startTransaction("Start");

Url url1 = new Url(protocol, myWebsite, "/StockTicker");

try (Request request1 = getWebBrowser().createRequest(HttpMethod.GET, url1, 1))

{

request1_ProcessSubRequests(request1);

// #region EPP_BEFORE_REQUEST_SENT for Request 1

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_REQUEST_SENT for Request 1

try (Response response1 = request1.send())

{

// #region EPP_AFTER_RESPONSE_RECEIVED for Request 1

// Code added here will be preserved during script regeneration

// #endregion EPP_AFTER_RESPONSE_RECEIVED for Request 1

// Rule: Verify that the page title matches what was recorded

response1.verifyTitle("My website", ActionType.ACT_WARNING);

}

}

Url url2 = new Url(protocol, myWebsite, "/StockTicker/start");

QueryData queryData2 = new QueryData();

queryData2.add("transport", "webSockets");

queryData2.add("connectionData", "[{\"name\":\"stockticker\"}]");

url2 = url2.withQuery(queryData2);

WebSocket webSocket2 = getWebBrowser().createWebSocket(url2, 2);

set("webSocketMessageQueue2", new WebSocketMessageQueue(webSocket2));

webSocket2.registerReceivedMessageCallback((ws, message) -> webSocket2_onReceivedMessage(ws, message));

webSocket2.registerErrorCallback((ws, errorMessage) -> webSocket2_onError(ws, errorMessage));

webSocket2.registerClosedCallback((ws, closedByClient, reason)-> webSocket2_onClosed(ws, closedByClient, reason));

// #region EPP_BEFORE_WEB_SOCKET_OPENED for WebSocket 2

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_WEB_SOCKET_OPENED for WebSocket 2

webSocket2.open();

// #region EPP_AFTER_WEB_SOCKET_OPENED for WebSocket 2

// Code added here will be preserved during script regeneration

// #endregion EPP_AFTER_WEB_SOCKET_OPENED for WebSocket 2

set("webSocket2", webSocket2);

// webSocket2 message 1

// #region EPP_BEFORE_WEB_SOCKET_SEND_MESSAGE for WebSocket 2 of frame 1

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_WEB_SOCKET_SEND_MESSAGE for WebSocket 2 of frame 1

((WebSocket)get("webSocket2")).sendMessage("{\"S\": \"EPP\"}");

// #region EPP_AFTER_WEB_SOCKET_SEND_MESSAGE for WebSocket 2 of frame 1

// Code added here will be preserved during script regeneration

// #endregion EPP_AFTER_WEB_SOCKET_SEND_MESSAGE for WebSocket 2 of frame 1

// webSocket2 message 2

// Received text message: {\"R\":[{\"Symbol\":\"EPP\",\"DayOpen\":543.01,\"DayLow\":541.46,\"DayHigh\":544.32,\"LastChange\":... (truncated)

/* This WebSocketMessageQueue code and the surrounding regions

only appear if a WebSocket rule is defined

with the "Incoming messages" option set to "Generate code to wait

for the messages to arrive from the server" */

// #region REGION_BEFORE_WEB_SOCKET_MESSAGE_QUEUE_GET_NEXT_MESSAGE for WebSocket 2 of frame 2

// Code added here will be preserved during script regeneration

// #endregion REGION_BEFORE_WEB_SOCKET_MESSAGE_QUEUE_GET_NEXT_MESSAGE for WebSocket 2 of frame 2

try (WebSocketMessage webSocket2_message2 = ((WebSocketMessageQueue)get("webSocketMessageQueue2")).getNextMessage(60000))

{

// #region REGION_AFTER_WEB_SOCKET_MESSAGE_QUEUE_GET_NEXT_MESSAGE for WebSocket 2 of frame 2

// Code added here will be preserved during script regeneration

// #endregion REGION_AFTER_WEB_SOCKET_MESSAGE_QUEUE_GET_NEXT_MESSAGE for WebSocket 2 of frame 2

}

// #region EPP_BEFORE_START_TRANSACTION "Start"

// Code added here will be preserved during script regeneration

// #endregion EPP_BEFORE_START_TRANSACTION for Transaction "Start"

endTransaction("Start");

}

private void webSocket2_onReceivedMessage(WebSocket webSocket, WebSocketMessage message) throws Exception

{

// #region EPP_WEB_SOCKET_RECEIVED_MESSAGE_CALLBACK for WebSocket 2

// Code added here will be preserved during script regeneration

// Put code here to process messages received on webSocket2

// #endregion EPP_WEB_SOCKET_RECEIVED_MESSAGE_CALLBACK for WebSocket 2

}

private void webSocket2_onError(WebSocket webSocket, String errorMessage) throws Exception

{

// #region EPP_WEB_SOCKET_ERROR_CALLBACK for WebSocket 2

// Code added here will be preserved during script regeneration

// Put code here to handle errors for webSocket2

// #endregion EPP_WEB_SOCKET_ERROR_CALLBACK for WebSocket 2

}

private void webSocket2_onClosed(WebSocket webSocket, boolean closedByClient, String reason) throws Exception

{

// #region EPP_WEB_SOCKET_CLOSED_CALLBACK for WebSocket 2

// Code added here will be preserved during script regeneration

// Put code here to be executed when webSocket2 is closed

// #endregion EPP_WEB_SOCKET_CLOSED_CALLBACK for WebSocket 2

}

private void request1_ProcessSubRequests(Request request1) throws Exception

{

// References to the following page resources could not be found within the contents of the received web page.

// This can occur because resources are fetched as a result of style sheets or the browser executing script code e.g. JavaScript.

request1.addSubRequest(protocol, myWebsite, "/StockTicker/style.css");

}

}

 

This topic was last updated on August 19, 2021, at 03:30:52 PM.

Eggplant icon Eggplantsoftware.com | Documentation Home | User Forums | Support | Copyright © 2022 Eggplant