NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Genie should limit the use of 3rd party libraries in order to reduce the impact on other projects on dependencies and other 3rd party libraries.
==========
Glue Language Modules: Java, JavaScript, Python
Report Modules: Jenkins cucumber report, Legacy
Glue Namespace Modules: Namespace around a group of glue and therefore gets around the problem of duplicate glue definition exceptions. However, it does mean specifying which module's glue you want to use in the feature file.
Framework Modules: Injection and the ability to inject functionality into glue code. Spring
==========
Currently Genie supports a single way of running Selenium, Local, and we would like to offer a number of alternative configurations in the upcoming version of Genie, 3.5.0.!?
==========
https://confluence.global.standardchartered.com/display/GENIE/Genie+3+Command+Line -- Command
==========
I have 2 scenarios and I need 1 to run before the other. How do I do that?
This is a bad practice and you should never, ever, rely on the order of scenarios. This means that each and every scenario is stand-alone and should not refer to or depend on functionalities/conditions in other scenarios. PERIOD!
To understand this, a scenario should be considered independant of any other scenario. That is that the test should follow a simple lifecycle; Setup, Execute, TearDown. SetUp and TearDown should be executed regardless of the Exceution result, aka, TearDown runs regardless of the Execution of the test. This can be achieved using Before and After Hooks.
==========
Whilst we have provided this information to create an Uber Jar(Single jar with all dependencies etc), we do not recommend this approach to execute the Uber Jar in Jenkins, and instead use maven to execute on Jenkins. - https://confluence.global.standardchartered.com/display/GENIE/Genie+3+FAQ
==========
How do I write a message to the Genie Report?
private Scenario scenario;
@Before
public void beforeScenario(Scenario scenario) {
this.scenario = scenario;
}

@Given("I have (\d+) cukes in my belly")
public void haveCukes(int cukes) {
scenario.write("Cukes: %nn", cukes);
}
==========
We recommend the use of the maven enforcer plugin combined with leveraging the dependency management facility of maven to ensure that dependencies always converge to the same version.
This enforcer / rule combination will configure maven to fail the build if your project contains multiple versions of the same dependency, with an error message
==========
* https://confluence.global.standardchartered.com/display/GENIE/Genie+3+Installation+and+Setup
==========
* https://confluence.global.standardchartered.com/display/GENIE/Genie+3+Module+Property+Guide Genie.properties
==========
Language Modules:
Compiled Languages are compiled into byte code before being executed on the JVM. For example Java, Groovy, Scala.
Interpreted Languages are executed as a script that is running within a program that is running on a JVM. For example JRuby, Jython, JavaScript.
Compiled Languages will find the glue code on the classpath, whilst interpreted languages will holded the source script located as external resources.

Framework Modules:
Spring for DI(Dependency Injection)

Glue Modules:
Provide gherkin grammar to a project.

Enrichment Modules:
Enrichment modules are used to import external data into glue by the way of dataTables and docString in steps or by the way of Examples in Scenario Outlines.
By providing some meta data in the form of a comment in a docString, dataTable or Scenario Outline examples, the data can be loaded into Genie at runtime, rather than storing the data within the Snippet or Feature files.

Report Modules:
Jenkins cucumber report, Legacy

Module Namespaces:
Let's say we have 2 modules with names 'selenium' and 'swing'.
The step definitions in both modules are:
Given("^click button '(.+)'$")
public void click(String name) {...}
In order to execute both step definitions you would need to write the following:
example.feature
Scenario: Namespace example
Given click button 'submit' @selenium
Given click button 'login' @swing
In the example above, the first call will execute the step definition in the selenium module. The second call the execute the step definition in the swing module.
==========
* https://confluence.global.standardchartered.com/display/GENIE/Genie+3+Modules -- Create a module in detail (At end of page)
==========
* https://confluence.global.standardchartered.com/display/GENIE/Embedded+Web+Server -- Local webserver (Jetty) that will be probably configured using genie.properties
==========
* https://confluence.global.standardchartered.com/display/GENIE/Enrichment+Modules -- Data into glue
* https://confluence.global.standardchartered.com/display/GENIE/Excel+Module -- Data from excel into glue
* https://confluence.global.standardchartered.com/display/GENIE/SQL+Module -- Data from sql into glue

*https://confluence.global.standardchartered.com/display/GENIE/Generics+Module -- Can be useful but experimental at the moment
The Generics module provide a way for users to "save" an object so that it can be later referenced in another part of the test suite.

* https://confluence.global.standardchartered.com/display/GENIE/Rest+Module -- Test REST services, experimental
==========
* https://confluence.global.standardchartered.com/display/GENIE/External+Process+Module -- Steps are provided

Module to start process(es) before the test start, and stop the process(es) after the test end.
There are two types of process currently supported:
Service Process. Process that will be alive throughout the test executions. This process is expected to last forever once started and therefore requires explicit stop instructions.
Example: web applications, backend applications that receives connections, mock database process, etc.
Terminating Process. Process that will stop after its execution is completed.
Example: process that executes database update via scripts.
==========
Logger module
https://confluence.global.standardchartered.com/display/GENIE/Log+Capture+Module

==========
Report Module
https://confluence.global.standardchartered.com/display/GENIE/Report+Module

==========
https://confluence.global.standardchartered.com/display/GENIE/Secrets+Module
Password and other data injection instead of writing in plain in feature file
==========
* https://confluence.global.standardchartered.com/display/GENIE/Snippets+Module
Writing good gherkin can be hard and at times the gherkin can become repetitive. This is where Snippets come in handy.
Snippets are reusable gherkin steps that are defined in a snippet file.
Snippet's look like Gherkin, but act like Glue.

==========
DI quick detail
https://stackoverflow.com/questions/19414734/understanding-spring-autowired-usage

==========
http://www.wideskills.com/spring/transaction-management-in-spring -- Spring transaction mgmnt
==========
Builtin glue:
https://confluence.global.standardchartered.com/display/GENIE/Genie+3+Provided+Glue
==========
Gherkin 101
https://confluence.global.standardchartered.com/display/GENIE/Gherkin+Reference
==========
* https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/package-frame.html -- selenium annotations
* https://www.cheatography.com/narayanan-palani/cheat-sheets/selenium-webdriver-cheat-sheet/pdf/ -- selenium cheatsheet
* https://www.cheatography.com/mpie/cheat-sheets/selenium-webdriver-js-for-cucumber-js/pdf/ -- selenium cheatsheet
* http://dontcodetired.com/blog/image.axd?picture=Windows-Live-Writer/Gherkin-Cheat-Sheet/7E61299E/gherkincheat.png -- gherkin cheatsheet
* https://awetest.zendesk.com/hc/en-us/articles/202336367-Cucumber-Cheat-Sheet -- cucumber cheatsheet
* http://agileforall.com/wp-content/uploads/2011/08/Cucumber-Regular-Expressions-Cheat-Sheet.pdf -- cucumber regex cheatsheet

==========
* https://bitbucket.global.standardchartered.com/projects/GENIE/repos/genie-examples/browse -- Genie examples
==========
* https://confluence.global.standardchartered.com/pages/viewpage.action?pageId=82691601 -- selenium module config under genie.properties
* https://confluence.global.standardchartered.com/display/GENIE/Selenium+Module+Page+Object+Model -- page object with example
** https://confluence.global.standardchartered.com/display/GENIE/Setting+up+Selenium+Module -- selenium module, https://confluence.global.standardchartered.com/display/GENIE/Using+Selenium+Module+Glue -- complete example
* https://confluence.global.standardchartered.com/display/GENIE/Setting+up+Selenium+Module+for+specific+browsers -- separating browser capabilities into file

==========
https://confluence.global.standardchartered.com/display/GENIE/Reports+Reference -- reports reference
https://confluence.global.standardchartered.com/display/GENIE/Scope+Reference+-+Scenario+and+Runtime -- scenario(only for a scenario) vs runtime(global duration) scope.. this is like store or code that exists locally or globally

==========
** https://confluence.global.standardchartered.com/display/GENIE/Genie+Project+Guidelines -- conventions
** builtin utilities https://confluence.global.standardchartered.com/display/GENIE/Genie-Provided+Transformers -- Transformers are a way of taking the Strings captured as step arguments, and transforming them into more complicated objects.

==========
** https://confluence.global.standardchartered.com/display/GENIE/Glue+Reference#GlueReference-ArgumentTransformations -- glue reference


==========
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.