FAST is a modular automa±on framework for func±onal automa±on. FAST doesn’t dictate how you write tests – quite the opposite – it provides you with a set of core components and op±ons that you are free to use to meet the needs of your project
- Pluggable components which can be combined as required (GUI and non-GUI)
- Support any protocols that Ci± is using (FIX, EMS, any other)
- Clearly documented and highly usable
- Support ICG Build tools
- Flexible con²gura±on
- Mul±-process and mul±-threaded deployments
- Rich human-readable repor±ng
- Pluggable components which can be combined as required (GUI and non-GUI)
- Support any protocols that Ci± is using (FIX, EMS, any other)
- Clearly documented and highly usable
- Support ICG Build tools
- Flexible con²gura±on
- Mul±-process and mul±-threaded deployments
- Rich human-readable repor±ng
A demonstration of Automation Testing using our proposed MOA-1.0 framework. In this repo, you will see how to integrate your applications with our MOA-1.0 framework and I can assure this is gonna make the life of SDET engineers a hella lot easier.
- Highlight keywords and syntax in test scenarios
- Autocomplete test steps
- Navigate through the code From usage to implementaTon oF methods
- Debug test scenarios: set breakpoints, overview/update variables, trace execuTon, etc.
- Run single test scenario, single fle, or any pack oF tests
- See result oF test execuTon in convenient real-Tme report with all debug log
Confguraton is convenienT and supporTs all possible needs:
- Multple environmenTs
- Multple users
- Multple se±ngs For multple agenTs
- Human-Friendly YML FormaT
- Allows everyThing To be kepT in Source ConTrol SysTem:
- global shared se±ngs,
- environmenT settings
- user-specifc se±ngs
- all These se±ngs can be used aT The same tme
maven command to run test: mvn clean test
maven command to run test and upload report to FAST Dashboard: mvn clean install
FAST Quick Guide for Test Engineer
- Step 1: Setup test environment (JDK + Maven + Eclipse/IntelliJ IDEA)
Please reference to https://cedt-confluence.nam.nsroot.net/confluence/display/167813001/FAST+-+Quick+Start
-
Step 2: Get sample project from this repo and clone it to your computer. Also below is the list of libraries(.jar) which ar eto include in the JRE System Library folder of JDK in your system :
-
- resources.jar
-
- rt.jar
-
- jsse.jar
-
- jce.jar
-
- charsets.jar
-
- jfr.jar
-
- access-bridge-64.jar
-
- cldrdata.jar
-
- dnsns.jar
-
- jaccess.jar
-
- jfxrt.jar
-
- localedata.jar
-
- nashorn.jar
-
- sunec.jar
-
- sunjce_provider.jar
-
- sunmscapi.jar
-
- sunpkcs11.jar
-
- zipfs.jar
Also make sure to first generate resources using the pom.xml file for generating all the dependencies required for execution of the framework. i.e use Maven-generate. In case of any other info, feel free to contact me.
-
-
Step 3: Create feature files to describe test cases with Gherkins language. Common steps are included in core library(fast.common)
Feature: Web Auto Sample - Wikipedia Background: Given Wait 3 seconds
@WEB
Scenario Outline: Search in Wikipedia
When WebAgent set timeout 5 seconds
And WebAgent open "https://www.wikipedia.org/" url
Then WebAgent is on SearchPage
And WebAgent type "<keyword>" into SearchTextbox
Then WebAgent click on SearchButton
Then WebAgent is on SearchResultsPage
Then WebAgent exit
Examples:
|keyword|
|Selenium|
|Cucumber|
-
Step 4: Implement steps which not implemented yet with Java glue code.
-
Step 5: Setup Dashboard Reporting configuration in pom.xml
- Step 6: Using Maven command to build and run
mvn clean install
Ability to connect, run select and update queries. Supported DB: ORACLE As A Service, ORACLE, SYBASE, SQLSERVER, DB2
fast.common.agents.DatabaseAgent
databaseType: ORACLE/SYBASE/SQLSERVER/DB2 hostname: server ip address or name port: server port databaseName: name of database username: login user id password: password isDBService: true/false (Optional to be specified only if using OraS) instance: Instance Name (Optional, to be specified if using password encryption with Sybase) encryptPassword: Encrypted Password (Optional, to be specified if using password encryption with Sybase) jceProviderClass: JCE class (Optional, to be specified if using password encryption with Sybase)
Uses selenium to provide testing of Web UI running on chrome, IE. Selenium version 3.6.0
fast.common.agents.WebBrowserAgent
headless:YES/NO headlessBrowser: CHROME/IE (if headless = YES) webRepo: Repository (Optional) driverClassName: Web driver Class Name driverRemoteAddress: Hostname of the remote machine webDriverPath : Web driver path proxy: proxyAddress for HtmlUnit Driver chromeArgument: Desired Capabilities settings chromePrefs: Experimental Chrome Options (Optional, if needed)
Provides ability to connect to unix machine and run commands or transfer files
fast.common.agents.SshAgent
hostName: Name/ip address of the machine port: Port number. (Mostly 22) username: Login user nam password: Login password
Uses LeanFT to test Desktop UI application using Application Model
fast.common.agents.LeanftAgent
leanftEngine: Path of LeanFT runtime engine exe appModel: Comma separated Application model classes modelJar: Path of Jar containing application models
Uses whiter driver to test Desktop UI application
fast.common.agents.UiaAgent
uiadriver: Path to White Driver exe uiRepo: Path to xml containing object repository
Provides ability to send, receive and verify FIX messages over Tibco EMS
fast.common.agents.FixEmsAgent
data_dictionary: Path of FIX dictionary host: Tibco server hostname user: Username password: Password send_topic: Name of topic for sending messages receive_topic: Name of topic for sending messages
Provides ability to query logs in ELK stash
fast.common.agents.ElkAgent
hostName: Server name hosting ELK port: Port no scheme: http maxSize: Max number of records to fetch aliveTime: Time in minutes (Optional)
Provides ability to start a TCP/IP based server and send/receive messages. It supports FIX message based session. It uses quickfix/J version 6.3
fast.common.agents.FixTcpServerAgent
QuickFixJ settings send_extra_tags: Additional tags to be sent(Optional)
Provides ability to start a TCP/IP based client and send/receive messages. It supports FIX message based session. It uses quickfix/J version 6.3.
fast.common.agents.FixTcpClientAgent
QuickFixJ settings send_extra_tags: Additional tags to be sent(Optional)