Here is another way to accomplish a “Poor Man’s Load Test” using an Excel Worksheet, one Test Case, one Test Suite and one Test Suite Collection…
1. Create a Test Case that is driven by data in an Excel Worksheet using the template Test Case displayed below…
Each row of the Excel Worksheet can be a new combination / permutation of URL, User Name and Password:
Column 1 is the URL for the Login Page
Column 2 is the User Name
Column 3 is the Password
Then, all you have to determine is how many rows you need to enter in the Excel Worksheet in order to load test all of the combinations / permutations for a single Test Case for your desired duration. Create hundreds / thousands of rows in the Excel Worksheet to ensure the Test Case runs for your desired duration…
2. Create multiple copies of a Test Suite that calls the Test Case created in step #1…
3. Create a Test Suite Collection that runs the multiple Test Suites created in step #2, each with your favorite browser, in “Parallel” Execution Mode…
4. Deploy Katalon Studio and the above Project to multiple workstations (PC / Linux Server / MacOS / Other) to avoid bandwidth issues using a single network segment…
******************************************
Test Case:
import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory as CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as MobileBuiltInKeywords
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testcase.TestCaseFactory as TestCaseFactory
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository as ObjectRepository
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUiBuiltInKeywords
import com.thoughtworks.selenium.webdriven.commands.RunScript as RunScript
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable
import net.sourceforge.htmlunit.corejs.javascript.ast.ForLoop as ForLoop
import org.openqa.selenium.Keys as Keys
for (def row = 1; row <= findTestData(‘Login’).getRowNumbers(); row++) {
WebUI.openBrowser('')
WebUI.navigateToUrl(findTestData('Login').getValue(1, row))
WebUI.setText(findTestObject('Page_Login/Username'), findTestData('Login').getValue(2, row))
WebUI.setText(findTestObject('Page_Login/Password'), findTestData('Login').getValue(3, row))
WebUI.click(findTestObject('Page_Login/Sign In'))
WebUI.delay(5)
//Call a Test Case that does what you would like each user to do in the AUT that is being load tested
WebUI.callTestCase(findTestCase('What you want to do next in your application'), \[:\], FailureHandling.STOP\_ON\_FAILURE)
WebUI.closeBrowser()
}