Giter Site home page Giter Site logo

noraui / noraui Goto Github PK

View Code? Open in Web Editor NEW
55.0 6.0 27.0 291.78 MB

Non-Regression Automation for User Interfaces

Home Page: https://noraui.github.io/

License: Other

Shell 0.95% Java 95.59% CSS 1.23% Gherkin 2.23%
regression-automation robot tests test-framework testing-tools test-driven-development test-automation testing-framework selenium selenium-webdriver

noraui's Introduction

NoraUi

Non-Regression Automation for User Interfaces

Demonstration

Demonstration

Technical documentation

Public website for NoraUi (Non-Regression Automation for User Interfaces).

Javadocs

Migration guide. /!\ IMPORTANT migration 4.1.x to 4.2.x !!! /!\ IMPORTANT migration 4.3.x to 4.4.x !!!

News

See change log for details

  • 2023-11-30: NoraUi [4.5.0] is in progress.
  • 2021-01-19: NoraUi [4.4.0] is released.
  • 2020-05-18: NoraUi [4.3.0] is released.
  • 2020-04-19: NoraUi [4.2.3] is released.
  • 2020-03-25: NoraUi [4.1.9] is released.
  • 2020-02-02: NoraUi [4.1.0] is released.
  • 2019-12-02: NoraUi [4.0.0] is released.
  • 2018-05-24: NoraUi [3.2.0] is released.
  • 2017-11-12: NoraUi [3.0.0] is released.
  • 2017-09-21: NoraUi [2.6.3] is prohibited.

Supported languages

These are the currently supported languages

  • English
  • French

Does NoraUi not support your language? Please help us with a PR!

Continuous Integration status

Build Status FOSSA Status Quality Gate SonarCloud Coverage SonarCloud Bugs SonarCloud Vulnerabilities Codacy Badge

:octocat: Contributors

GitHub contributors GitHub closed pull requests GitHub issues

Gitter chat

Join the chat at https://gitter.im/NoraUiChat

How to use

Stable:

Maven Central

SNAPSHOT:

<dependency>
    <groupId>com.github.noraui</groupId>
    <artifactId>noraui</artifactId>
    <version>4.5.0-SNAPSHOT</version>
</dependency>
<repository>
    <id>sonatype-snapshots</id>
    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>

Technology

  • Gherkin 5+
  • Cucumber 4+
  • Selenium 3+
  • Webdriver (Chrome, IE and firefox)
  • Java 8 (Oracle JDK8, OpenJDK8, Oracle JDK11 and OpenJDK11 are supported).
  • Maven
  • Google guice
  • JUnit 5 / Mockito

Run Anywhere

RunAnywhere

License

FOSSA Status license See LICENSE for details

/!\ CAUTION: NoraUi V2.x.x is prohibited.

These versions use the following dependency whose copyrights are not respected.

     <GroupId>com.github.noraui</groupId>
     <ArtifactId>cucumber-metrics</artifactId>

This dependency comes from a Pull Request (Cucumber-JVM: Metrics) proposal by sgrillon14 to open source library "Cucumber-JVM". Nobody has permission to copy this code let alone claim to be creator of it. This was noted in the README.md of the GitHub repository. This part has been officially integrated into NoraUi in V3.x.x which has an AGPL license.

These versions use the following dependency whose copyrights are not respected.

    <GroupId>com.github.noraui</groupId>
    <ArtifactId>ojdbc7</artifactId>

The NoraUi project had the temporary authorization of sonatype to publish this version. This was temporary because Oracle finally did not agree. Oracle has declined NoraUi's proposal and the deposit is now removed. The use by the NoraUi team was tolerated until the end of 2017 (It was noted in the README.md of the GitHub repository.) But is now forbidden for all.

Contributing

Before create issue check Ask at StackOverflow

The issue tracker is the preferred channel for bug reports, features requests and submitting pull requests.

For pull requests, read CONTRIBUTING before.

  • Step 1: Create a fork.
  • Step 2: Create a branch on this new fork.
  • Step 3: Sync your travis-ci account and guithub account.

howtocontribute-travis-ci-sync

  • Step 4: Flick the repository switch on.

howtocontribute-travis-ci-on

  • Step 5: Add OTN login/password in Travis-ci environnement.

howtocontribute-travis-ci-env-var

  • Step 6: Valid if Travis status is OK.
  • Step 7: Create pull request.

footer

noraui's People

Contributors

arkniid avatar based2 avatar crolo91 avatar custotestor avatar dependabot[bot] avatar dfgeek avatar fossabot avatar jareklipsko avatar jimmytournemaine avatar kaka69 avatar rooftiptop avatar sg-oss avatar sgrillon14 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

noraui's Issues

External WebDriver

I need use external Chrome WebDriver from unix Xvfb Jenkins plugin.

I add webdrivers.properties file with:

webdriver.chrome.driver=${webdriver.chrome.driver}

I add this in ci.properties file:

browser=chrome
webdriver.chrome.driver=/home/jenkins/tools/chromedriver/2.33/chromedriver

but I have this error:

16:41:30 [2017-12-05 16:41:30]: os.arch: amd64
16:41:30 Starting ChromeDriver 2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4) on port 6176
16:41:30 Only local connections are allowed.

i18n fail on HTTP_SERVICE_ERROR_MESSAGE

java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key HTTP_SERVICE_ERROR_MESSAGE
at java.util.ResourceBundle.getObject(ResourceBundle.java:450)
at java.util.ResourceBundle.getString(ResourceBundle.java:407)
at com.github.noraui.utils.Messages.getMessage(Messages.java:154)
at com.github.noraui.utils.Messages.getMessage(Messages.java:132)
at com.github.noraui.service.impl.HttpServiceImpl.get(HttpServiceImpl.java:52)
at com.github.noraui.data.rest.RestDataProvider.initColumns(RestDataProvider.java:132)
at com.github.noraui.data.rest.RestDataProvider.prepare(RestDataProvider.java:75)
at com.github.noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:262)
at com.github.noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:250)
at com.github.noraui.indus.MavenRunCounter.count(MavenRunCounter.java:69)
at com.github.noraui.indus.Counter.main(Counter.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:282)
at java.lang.Thread.run(Thread.java:748)

Add create new service in CLI

Is your feature request related to a problem? Please describe.

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Steps to Reproduce your case

  1. use CLI

Describe the solution you'd like

Expected Behavior

add new feature in CLI menu

Current Behavior


Describe alternatives you've considered

A clear and concise description of any alternative solutions or features you've considered.

Possible Solution

  • add service interface
  • add service implementation
  • add guice injector in context
    YourRobotModule implements Module {
    ...
    @Override
    public void configure(Binder binder) {
        LOGGER.debug("Id2sRobot interceptors binding");
        binder.bind(xxxxService.class).to(xxxxServiceImpl.class).asEagerSingleton();
    }

Context & Motivation

create a service more easily via the CLI

Your Environment

  • Robot generated by NoraUi Version: V4.0.0-SNAPSHOT
  • NoraUi Version used: V4.0.0-SNAPSHOT
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 77
  • WebDriver and version: ChromeDriver 77
  • Link to your project: http://

The last column of the data file must belong to '[RÚsultat, Result]'

I use Intellij IDE + Windows 7 with NoraUi 2.6.3

I run this Maven command:
mvn clean install -PpreIC,scenarioInitiator,unit-tests -Dcucumber.options="--tags '@bonjour'" -Dmaven.test.failure.ignore=true

I have this logs on my console:

[2017-10-04 20:10:02]: Data provider used is CSV.
[2017-10-04 20:10:03]: /!\ Wrong data file (IOException, EmptyDataFileContentException or WrongDataFileFormatException). /!\
noraui.exception.data.WrongDataFileFormatException: /!\ The last column of the data file must belong to '[RÚsultat, Result]'. /!\
        at noraui.data.csv.CsvDataProvider.initColumns(CsvDataProvider.java:155)
        at noraui.data.csv.CsvDataProvider.prepare(CsvDataProvider.java:41)
        at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:203)
        at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:84)
        at noraui.indus.MavenRunCounter.count(MavenRunCounter.java:59)
        at noraui.indus.Counter.main(Counter.java:38)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
        at java.lang.Thread.run(Thread.java:748)[2017-10-04 20:10:02]: Data provider used is CSV.
[2017-10-04 20:10:03]: /!\ Wrong data file (IOException, EmptyDataFileContentException or WrongDataFileFormatException). /!\
noraui.exception.data.WrongDataFileFormatException: /!\ The last column of the data file must belong to '[RÚsultat, Result]'. /!\
        at noraui.data.csv.CsvDataProvider.initColumns(CsvDataProvider.java:155)
        at noraui.data.csv.CsvDataProvider.prepare(CsvDataProvider.java:41)
        at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:203)
        at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:84)
        at noraui.indus.MavenRunCounter.count(MavenRunCounter.java:59)
        at noraui.indus.Counter.main(Counter.java:38)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294)
        at java.lang.Thread.run(Thread.java:748)

it is necessary to have a trim on the scenario name when creating a new scenario via the CLI

Describe the bug

it is necessary to have a trim on the scenario name when creating a new scenario via the CLI

Expected Behavior

if scenario name end by empty char, you have => yourscenario.feature yourscenario.xlsx ...

Current Behavior

if scenario name en by empty char, you have => yourscenario .feature yourscenario .xlsx ...


Possible Solution

add a trim

Steps to Reproduce (for bugs)

  1. Open CLI
  2. Add new scenario
  3. put a scenario name en by empty char

Context & Motivation

production of new scenarion via copy/past

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.0-SNAPSHOT
  • Operating System and version: Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 79
  • WebDriver and version: ChromeDriver 79
  • Link to your project: http://

setText do not use keysToSend

Describe the bug

protected void setText(PageElement pageElement, String textOrKey, CharSequence keysToSend, Object... args) throws TechnicalException, FailureException {
...
}

Expected Behavior

use keysToSend at the end

Current Behavior

setText do not use keysToSend


Possible Solution

add same code of updateText

Steps to Reproduce (for bugs)

  1. no present in actual unit tests

Context & Motivation

fix setText feature

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.0
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 79
  • WebDriver and version: ChromeDriver 79
  • Link to your project: http://

testRunAllStepsInLoopWithUndefinedStep KO

[ERROR] testRunAllStepsInLoopWithUndefinedStep(com.github.noraui.application.steps.StepUT) Time elapsed: 0.067 s <<< ERROR!
java.lang.NullPointerException
at com.github.noraui.application.steps.StepUT.testRunAllStepsInLoopWithUndefinedStep(StepUT.java:380)

Your Environment

  • Robot generated by NoraUi Version: N/A
  • NoraUi Version used: 4.0.0-SNAPSHOT
  • Operating System and version: unix

Data provider DB (MYSQL) is KO in CI

[2017-09-24 20:27:45]: /!\ Data provider used is DB (MYSQL). /!
[2017-09-24 20:27:46]: java.lang.NullPointerException
[2017-09-24 20:27:46]: Scenario: hello => step: 67 and cases: 0 --> runs: 0, failures: 0, errors: 0 and skips: 0
[2017-09-24 20:27:46]: [DbMySql] > <EXPECTED_RESULTS>Tests run: 0, Failures: 0, Errors: 0, Skipped: 0</EXPECTED_RESULTS>

ClassCastException when ChromeDriver is used with a proxy

This issue is related to this stackoverflow issue.

When using ChromeDriver, Selenium tries to convert the Capabilities Object to JSON using BeanToJsonConverter#convertObject(Object, int) method. For trivial types, the conversion is done directly but for complex object, the method checks if the object has some specific methods in the following order :

  • toMap or asMap
  • toList or asList
  • toJson

The org.openqa.selenium.Proxy has a toJson method which returns a Map whereas the BeanToJsonConverter#convertObject expect toJson method to return a String, hence the ClassCastException.

...
Method toJson = getMethod(toConvert, "toJson");
if (toJson != null) {
try {
Object res = toJson.invoke(toConvert);
if (res instanceof JsonElement) {
return (JsonElement) res;
}
try {
return new JsonParser().parse((String) res);
...

A temporary workaround while waiting for this issue to be fixed on Selenium side would be to :

  • Create a NoraUIProxy class which inherits org.openqa.selenium.Proxy with a toMap method delegating to toJson
  • Use NoraUIProxy in DriverFactory instead of Proxy

Data provider

Hello,

I have a problem with the data providers, i tried to change the type of data to provide and i put this:

#type of input dataProvider (EXCEL, CSV, DB, REST, GHERKIN, noraui.data.xxx.YourCustomInputDataProvider)
dataProvider.in.type=GHERKIN
#type of output dataProvider (EXCEL, CSV, REST, CONSOLE, noraui.data.xxx.YourCustomOutputDataProvider)
dataProvider.out.type=CONSOLE

But i have always this problem :

[2018-05-21 13:39:58]: CW_COL_SAI_T01_AC NOT set!
[2018-05-21 13:39:58]: java.nio.file.NoSuchFileException: src\test\resourcesnullCW_COL_SAI_T01_AC.feature
[2018-05-21 13:39:58]: Wrong data file (IOException, EmptyDataFileContentException or WrongDataFileFormatException)
noraui.exception.data.EmptyDataFileContentException: Input data file is empty or only result column is provided.
at noraui.data.gherkin.InputGherkinDataProvider.initColumns(InputGherkinDataProvider.java:108)
at noraui.data.gherkin.InputGherkinDataProvider.prepare(InputGherkinDataProvider.java:35)
at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:198)
at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:83)
at noraui.indus.MavenRunCounter.count(MavenRunCounter.java:58)

And the Gherkin file is filled with the data:

Scenario Outline: Scenario that 1st sample.

Given 'Page_HOME' est ouvert.
Then Application ouverte avec succès et Demande des informations de connexion.

Given Je vérifie que user '<user>' n'est pas vide.
    Given Je vérifie que password '<password>' n'est pas vide.
    Given Je vérifie que code '<codeClient>' n'est pas vide.

When Entrer les informations de connexion '<codeClient>' '<domaine>' '<user>' '<password>'.
Then Affichage de l'écran 'Sélectionner un dossier'.

When Selectionner le dossier '<dossier>'.
Then Affichage de l'écran d'accueil permettant la navigation au sein du dossier sélectionné.
And Date de facture champ non-modifiable.

		Examples:
  #DATA
  	  |id|codeClient|domaine|user|password|dossier|
|1|test|domaine1|test|test|dossier1|

 #END

on the other hand when i change the settings and i put:

#type of input dataProvider (EXCEL, CSV, DB, REST, GHERKIN, noraui.data.xxx.YourCustomInputDataProvider)
dataProvider.in.type=EXCEL
#type of output dataProvider (EXCEL, CSV, REST, CONSOLE, noraui.data.xxx.YourCustomOutputDataProvider)
dataProvider.out.type=EXCEL

I will not have problems running, the problem here is that the data used is the data in the Gherkin file and not in Excel file.
And when i try to make a modification on Excel file it does not take account my modification.
The name of the Excel file is the same for the Gherkin file.
I do not know if there are other parameters to change, or if i made a mistake somewhere.

Thank you.

use org.openqa.selenium.Keys in Cucumber ParameterType list

Describe.

In NoraUi Framework I can use: And I update text 'glassdoor.AdminPage-report_date' and type ENTER with 'today'

I see the open source code and I see that the value ENTER is written in hard.

 @Conditioned
 @Quand("Je mets à jour le texte {string} et entre ENTRER avec {string}(\\?)")
 @When("I update text {string} and type ENTER with {string}(\\?)")
 public void updateTextAndEnter(String pageElement, String textOrKey, List<GherkinStepCondition> conditions) throws TechnicalException, FailureException {
     String page = pageElement.split("-")[0];
     String elementName = pageElement.split("-")[1];
     updateText(Page.getInstance(page).getPageElementByKey('-' + elementName), textOrKey, Keys.ENTER);
 }

Can you create a custom parameter of type Keys SVP?

Steps to Reproduce your case

  1. use And I update text 'glassdoor.AdminPage-report_date' and type ENTER with 'today' in Gherkin
  2. use And I update text 'glassdoor.AdminPage-report_date' and type ESCAPE with 'today' in Gherkin

Describe the solution you'd like

a custom parameter of type Keys and use this

Possible Solution

modify https://github.com/NoraUi/NoraUi/blob/chainable-waits/src/main/java/com/github/noraui/cucumber/config/CucumberTypeRegistryConfigurer.java

new ParameterType<Keys>("keyboard-key", "\\'(.+\\..+-.+)\\'",
                    Keys.class, (final String strKeyboardKey) -> {
                        // TODO:
                        // change 'ENTER String' to Keys.ENTER
                        return Keys.ENTER;
                    })

Change:

   @When("I update text {string} and type ENTER with {string}(\\?)")
    public void updateTextAndEnter(String pageElement, String textOrKey, List<GherkinStepCondition> conditions) throws TechnicalException, FailureException {
    ...
    updateText(Page.getInstance(page).getPageElementByKey('-' + elementName), textOrKey, Keys.ENTER);

by:

    @When("I update text {string} and type {key} with {string}(\\?)")
    public void updateTextAndEnter(String pageElement, Keys key, String textOrKey, List<GherkinStepCondition> conditions) throws TechnicalException, FailureException {
    ...
    updateText(Page.getInstance(page).getPageElementByKey('-' + elementName), textOrKey, key);

Context & Motivation

use any key in this generic steps:

  NULL         ('\uE000'),
  CANCEL       ('\uE001'), // ^break
  HELP         ('\uE002'),
  BACK_SPACE   ('\uE003'),
  TAB          ('\uE004'),
  CLEAR        ('\uE005'),
  RETURN       ('\uE006'),
  ENTER        ('\uE007'),
  SHIFT        ('\uE008'),
  LEFT_SHIFT   (Keys.SHIFT),
  CONTROL      ('\uE009'),
  LEFT_CONTROL (Keys.CONTROL),
  ALT          ('\uE00A'),
  LEFT_ALT     (Keys.ALT),
  PAUSE        ('\uE00B'),
  ESCAPE       ('\uE00C'),
  SPACE        ('\uE00D'),
  PAGE_UP      ('\uE00E'),
  PAGE_DOWN    ('\uE00F'),
  END          ('\uE010'),
  HOME         ('\uE011'),
  LEFT         ('\uE012'),
  ARROW_LEFT   (Keys.LEFT),
  UP           ('\uE013'),
  ARROW_UP     (Keys.UP),
  RIGHT        ('\uE014'),
  ARROW_RIGHT  (Keys.RIGHT),
  DOWN         ('\uE015'),
  ARROW_DOWN   (Keys.DOWN),
  INSERT       ('\uE016'),
  DELETE       ('\uE017'),
  SEMICOLON    ('\uE018'),
  EQUALS       ('\uE019'),

  // Number pad keys
  NUMPAD0      ('\uE01A'),
  NUMPAD1      ('\uE01B'),
  NUMPAD2      ('\uE01C'),
  NUMPAD3      ('\uE01D'),
  NUMPAD4      ('\uE01E'),
  NUMPAD5      ('\uE01F'),
  NUMPAD6      ('\uE020'),
  NUMPAD7      ('\uE021'),
  NUMPAD8      ('\uE022'),
  NUMPAD9      ('\uE023'),
  MULTIPLY     ('\uE024'),
  ADD          ('\uE025'),
  SEPARATOR    ('\uE026'),
  SUBTRACT     ('\uE027'),
  DECIMAL      ('\uE028'),
  DIVIDE       ('\uE029'),

  // Function keys
  F1           ('\uE031'),
  F2           ('\uE032'),
  F3           ('\uE033'),
  F4           ('\uE034'),
  F5           ('\uE035'),
  F6           ('\uE036'),
  F7           ('\uE037'),
  F8           ('\uE038'),
  F9           ('\uE039'),
  F10          ('\uE03A'),
  F11          ('\uE03B'),
  F12          ('\uE03C'),

  META         ('\uE03D'),
  COMMAND      (Keys.META),

  ZENKAKU_HANKAKU ('\uE040');

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.0
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 79
  • WebDriver and version: ChromeDriver 79
  • Link to your project: http://

Wrong counter if 0 result

[2018-12-14 13:06:15]: Scenario: hello => step: 100 and cases: 0 --> runs: 0, failures: 0, errors: 0 and skips: 0
[2018-12-14 13:06:15]: Scenario: sampleRESTAPI => step: 5 and cases: 0 --> runs: 0, failures: 0, errors: 0 and skips: 0
[2018-12-14 13:06:15]: [DbMySql] > <EXPECTED_RESULTS_1>0 Scenarios)</EXPECTED_RESULTS_1>
[2018-12-14 13:06:15]: [DbMySql] > <EXPECTED_RESULTS_2>0 Steps )</EXPECTED_RESULTS_2>

AuthUT n°3 is KO. Basic authentication seems to be broken

See stack trace below:

[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 307.952 s <<< FAILURE! - in com.github.noraui.browser.AuthUT
[ERROR] testPageBehindAuthenticationWithWrongCredentials(com.github.noraui.browser.AuthUT)  Time elapsed: 301.092 s  <<< FAILURE!
java.lang.AssertionError: 
Exception thrown: /!\ Opening the page PROTECTED. /!\ [timeout
  (Session info: chrome=65.0.3325.181)
  (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.4.0-101-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: 'travis-job-622f4b92-55e4-46ab-a468-5ca3bbb98749', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-101-generic', java.version: '1.8.0_151'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=LINUX, acceptSslCerts=false, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, platformName=LINUX, setWindowRect=true, unexpectedAlertBehaviour=accept, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752), userDataDir=/tmp/.org.chromium.Chromium.GVtfgL}, takesHeapSnapshot=true, pageLoadStrategy=normal, unhandledPromptBehavior=accept, databaseEnabled=false, handlesAlerts=true, version=65.0.3325.181, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
Session ID: 17c83556007f80ae9ee54cbfee591e63]
	at com.github.noraui.browser.AuthUT.testPageBehindAuthenticationWithWrongCredentials(AuthUT.java:69)

Data provider DB (POSTGRESQL) is KO in CI

[2017-11-02 22:25:21]: Data provider used is DB (POSTGRE).
[2017-11-02 22:25:21]: error MavenRunCounter.countNbCasFailuresAndSkipped()
noraui.exception.TechnicalException: [ERROR] Technical error in NoraUi: ERROR: zero-length delimited identifier at or near """"
Position: 144
at noraui.data.db.DBDataProvider.initColumns(DBDataProvider.java:195)
at noraui.data.db.DBDataProvider.prepare(DBDataProvider.java:78)
at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:246)
at noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:88)
at noraui.indus.MavenRunCounter.count(MavenRunCounter.java:63)
at noraui.indus.Counter.main(Counter.java:43)
at noraui.indus.CounterUT.testDbPostgreCounter(CounterUT.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)
Caused by: org.postgresql.util.PSQLException: ERROR: zero-length delimited identifier at or near """"
Position: 144
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117)
at noraui.data.db.DBDataProvider.initColumns(DBDataProvider.java:187)
... 31 common frames omitted

Counter Error in EXPECTED_RESULTS_X when value is zero

[Excel] > <EXPECTED_RESULTS_1>4 Scenarios (0 failed, 4 passed)</EXPECTED_RESULTS_1>
[Excel] > <EXPECTED_RESULTS_2>36 Steps (0 failed, 0 skipped, 36 passed)</EXPECTED_RESULTS_2>

...

4 Scenarios (4 passed)
36 Steps (36 passed)

add @RetryOnWarning

Context & Motivation

I want use @RetryOnFailure but with a warning, can you implement @RetryOnWarning?

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.0
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 79
  • WebDriver and version: ChromeDriver 79
  • Link to your project: http://

Error message do not translated in com.github.noraui.exception.Result.Failure.fail()

java.lang.AssertionError: Fail: FAIL_MESSAGE_UNKNOWN_CREDENTIALS [xxxxxx]
at org.junit.Assert.fail(Assert.java:88)
at com.github.noraui.exception.Result$Failure.fail(Result.java:196)
at com.github.noraui.cucumber.interceptor.StepInterceptor.invoke(StepInterceptor.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cucumber.runtime.Utils$1.call(Utils.java:32)
at cucumber.runtime.Timeout.timeout(Timeout.java:16)
at cucumber.runtime.Utils.invoke(Utils.java:26)
at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:37)
at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:46)
at cucumber.api.TestStep.executeStep(TestStep.java:102)
at cucumber.api.TestStep.run(TestStep.java:83)
at cucumber.api.TestCase.run(TestCase.java:58)
at cucumber.runner.Runner.runPickle(Runner.java:80)
at cucumber.runtime.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:140)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:68)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:23)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:73)
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:99)
at cucumber.api.junit.Cucumber.runChild(Cucumber.java:41)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at cucumber.api.junit.Cucumber$1.evaluate(Cucumber.java:108)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)
at ✽.The XXXXXX home page is displayed(src/test/resources/steps/ci/LoginLogout.feature:10)

CLI more strong if env != dev,ci,prod (NPE)

NPE if add new appliction when you have custom env.

Steps to Reproduce your case

  1. create new env "staging"
  2. open CLI
  3. add new application
  4. NPE

Describe the solution you'd like

CLI do not use dev,ci,prod but dinamic envs

Expected Behavior

all envs present is use (not only dev,ci,prod)

Context & Motivation

I want add new application via CLI with this:

image

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.0
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 79
  • WebDriver and version: ChromeDriver 79
  • Link to your project: https://www.boeing.com/

separation between tags and scenarios

Describe.

I wish to be able to put several tags on a scenario. Then I could make groups and launch the scenarios via these tags representing a group.

@001-MyScenario
@US-042
@Sprint-002
Feature: 001-MyScenario (My Scenario )

  Scenario Outline:  My Scenario

Steps to Reproduce your case

  1. mvn clean verify --batch-mode -Dcucumber.options="--tags '@000-My1stScenario or @001-MyScenario'" --activate-profiles preIC,scenarioInitiator,ci,robot,postIC -Dmaven.test.failure.ignore=true -Dcrypto.key=${CRYPTO_KEY}
  2. mvn clean verify --batch-mode -Dcucumber.options="--tags '@US-042'" --activate-profiles preIC,scenarioInitiator,ci,robot,postIC -Dmaven.test.failure.ignore=true -Dcrypto.key=${CRYPTO_KEY}

CAUTION: -Dcucumber.options=\"--tags '@001-MyScenario or @US-042'\" run only one time 001-MyScenario

Describe the solution:

Separation between tags and scenarios. currently, a tag corresponds to a scenario

Possible Solution:

@001-MyScenario <= main tag = scenario
@US-042 <= secondary tag
@Sprint-002 <= secondary tag

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.0
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 80
  • WebDriver and version: ChromeDriver 80

improve data injection's regexp

https://github.com/NoraUi/NoraUi/blob/cbdeda88821bd741a524f7343d99a2b1d0823c35/src/main/java/com/github/noraui/gherkin/GherkinFactory.java L67

in my case, this regexp replace the entire content between #DATA and #END, regardless of the number of scenario inside a feature file,

we should be able to do mulitple #scenarios and inject data at each one of them:

with actual regexp : https://regex101.com/r/kwlKRj/1/
suggested improvement/correction : https://regex101.com/r/3zcArq/3/

====

I would have liked to test my solution, but after downloading the project i can't build it (it looks like maven can't download the libraries with rennes proxy's, did I miss something (configurations, ...) ?

AuthUT KO after update chromedriver to 77

Describe the bug

Starting ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442}) on port 11429
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1568318970.020][SEVERE]: bind() failed: Cannot assign requested address (99)
Sep 12, 2019 8:09:30 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[ERROR] Tests run: 4, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 6.182 s <<< FAILURE! - in com.github.noraui.browser.AuthUT
[ERROR] testPageBehindCookieAuthentication(com.github.noraui.browser.AuthUT)  Time elapsed: 1.054 s  <<< FAILURE!
java.lang.AssertionError: 
Exception thrown: unable to set cookie
  (Session info: chrome=77.0.3865.75)
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-101-generic', java.version: '1.8.0_151'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 77.0.3865.75, chrome: {chromedriverVersion: 77.0.3865.40 (f484704e052e0..., userDataDir: /tmp/.com.google.Chrome.t0Q5tx}, goog:chromeOptions: {debuggerAddress: localhost:39433}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: accept}
Session ID: 2d6f7fb2af9dd2fb8fe2f690c33f0efb
	at com.github.noraui.browser.AuthUT.testPageBehindCookieAuthentication(AuthUT.java:119)
[ERROR] testPageBehindAuthenticationWithWrongCredentials(com.github.noraui.browser.AuthUT)  Time elapsed: 0.996 s  <<< FAILURE!
java.lang.AssertionError: The requested page content must not respond 'OK'.
	at com.github.noraui.browser.AuthUT.testPageBehindAuthenticationWithWrongCredentials(AuthUT.java:84)

Steps to Reproduce (for bugs)

  1. run AuthUT

Context & Motivation

build master of NoraUi

Your Environment

  • Robot generated by NoraUi Version: V4.0.0-SNAPSHOT
  • NoraUi Version used: V4.0.0-SNAPSHOT
  • Operating System and version: Unix and Windows
  • Browser and version: Chrome 77

OpenJDK issue on ImageIO.write

Summary

use oracleJDK and openJDK

Expected Behavior

build work with oracleJDK and openJDK

Current Behavior

build work only with oracleJDK and not openJDK

Possible Solution

add BufferedImage.TYPE_3BYTE_BGR

Steps to Reproduce (for bugs)

run with openJDK

Your Environment

  • NoraUi Version used: 4.0.0-SNAPSHOT
  • Operating System and version: unix

checkMandatoryFieldTextTypeTest unit test fail

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.027 s <<< FAILURE! - in com.github.noraui.application.steps.CommonStepsUT
[ERROR] checkMandatoryFieldTextTypeTest(com.github.noraui.application.steps.CommonStepsUT) Time elapsed: 1.604 s <<< ERROR!
java.lang.NullPointerException
at com.github.noraui.application.steps.CommonStepsUT.checkMandatoryFieldTextTypeTest(CommonStepsUT.java:61)

RestDataProviderUT KO

[INFO] Running com.github.noraui.data.rest.RestDataProviderUT
[2018-05-17 21:03:23]: Data provider used is REST.
[ERROR] Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.036 s <<< FAILURE! - in com.github.noraui.data.rest.RestDataProviderUT
[ERROR] testWriteXxxxxResult(com.github.noraui.data.rest.RestDataProviderUT) Time elapsed: 0.034 s <<< ERROR!
java.lang.NullPointerException
at com.github.noraui.data.rest.RestDataProviderUT.testWriteXxxxxResult(RestDataProviderUT.java:58)

Feature file

Hello,

Can we make a call between features ?, For example a feature calls another feature to execute a specific scenario without rewriting it.
What i want to do exactly is to create a feature only for the connection and call it by other feature.

NoraUiInjector is already instanciated in CI

[2017-11-02 22:25:20]: error NoraUiInjectorSource.getInjector()
noraui.exception.TechnicalException: [ERROR] Technical error in NoraUi: NoraUiInjector is already instanciated.
at noraui.cucumber.injector.NoraUiInjector.createInjector(NoraUiInjector.java:27)
at noraui.cucumber.injector.NoraUiInjectorSource.getInjector(NoraUiInjectorSource.java:31)
at noraui.utils.UtilitiesUT.setUp(UtilitiesUT.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)

StepUT KO

[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] StepUT.testRunAllStepsInLoopWithUndefinedStep:383 expected:<[/!\ The step [I wait '4' seconds.] is undefined. /!]> but was:<["I wait '4' seconds."]>
[ERROR] ShellCommandUT.testSimpleCommandWithParameters:27 Exception thrown: Cannot run program "help": error=2, No such file or directory
[ERROR] Errors:
[ERROR] Runner.initializationError » Cucumber gherkin.ParserException$CompositeParserE...
[ERROR] RestDataProviderUT.testWriteXxxxxResult:58 » NullPointer
[INFO]
[ERROR] Tests run: 138, Failures: 2, Errors: 2, Skipped: 0
[INFO]
[ERROR] There are test failures.

V4.0.0-SNAPSHOT log KO

Summary

Expected Behavior

in logs

Given me a cat, please. Best Regards 'Jenkins T1'.

Current Behavior

in logs

Given me a cat, please. Best Regards '{string}'.

Possible Solution

use data instand of cucumber expression text

Steps to Reproduce (for bugs)

Context & Motivation

V4+ iso log V3+

Your Environment

  • Robot generated by NoraUi Version: V4.0.0-SNAPSHOT
  • NoraUi Version used: V4.0.0-SNAPSHOT
  • Operating System and version: unix
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 75
  • Link to your project:

unit test KO (ScenarioInitiatorUT)

[ERROR] There are test failures.
Please refer to /home/travis/build/NoraUi/NoraUi/target/surefire-reports for the individual test results.
Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Command was /bin/sh -c cd /home/travis/build/NoraUi/NoraUi && /usr/lib/jvm/java-8-oracle/jre/bin/java -Dfile.encoding=UTF-8 -javaagent:/home/travis/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/home/travis/build/NoraUi/NoraUi/target/test-results/coverage/jacoco/jacoco.exec -jar /home/travis/build/NoraUi/NoraUi/target/surefire/surefirebooter3942140096945827967.jar /home/travis/build/NoraUi/NoraUi/target/surefire 2018-03-29T21-39-05_475-jvmRun1 surefire143197456744254289tmp surefire_02617730578104669031tmp
Error occurred in starting fork, check output in log
Process Exit Code: 255
Crashed tests:
com.github.noraui.main.ScenarioInitiatorUT
org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Command was /bin/sh -c cd /home/travis/build/NoraUi/NoraUi && /usr/lib/jvm/java-8-oracle/jre/bin/java -Dfile.encoding=UTF-8 -javaagent:/home/travis/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/home/travis/build/NoraUi/NoraUi/target/test-results/coverage/jacoco/jacoco.exec -jar /home/travis/build/NoraUi/NoraUi/target/surefire/surefirebooter3942140096945827967.jar /home/travis/build/NoraUi/NoraUi/target/surefire 2018-03-29T21-39-05_475-jvmRun1 surefire143197456744254289tmp surefire_02617730578104669031tmp
Error occurred in starting fork, check output in log
Process Exit Code: 255
Crashed tests:
com.github.noraui.main.ScenarioInitiatorUT
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:686)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:535)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:280)
at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1124)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:954)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:832)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:955)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

connect timed out with HttpService

Summary

[2019-08-06 20:36:29]: Error on opening connection with HttpService.
java.net.SocketTimeoutException: connect timed out

Possible Solution

add timeout in conf

Context & Motivation

use HttpService with bag connect to Internet

Your Environment

  • NoraUi Version used: V4.0.0-SNAPSHOT

ShellCommandUT KO

[ERROR] Tests run: 37, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.715 s <<< FAILURE! - in com.github.noraui.application.steps.StepUT
[ERROR] testRunAllStepsInLoopWithUndefinedStep(com.github.noraui.application.steps.StepUT) Time elapsed: 0.017 s <<< FAILURE!
org.junit.ComparisonFailure: expected:<[/!\ The step [I wait '4' seconds.] is undefined. /!]> but was:<["I wait '4' seconds."]>
at com.github.noraui.application.steps.StepUT.testRunAllStepsInLoopWithUndefinedStep(StepUT.java:383)
[INFO] Running com.github.noraui.utils.SecurityUT
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.025 s - in com.github.noraui.utils.SecurityUT
[INFO] Running com.github.noraui.utils.ShellCommandUT
[2018-05-16 20:49:56]: Running command 'whoami' with following parameters:
[2018-05-16 20:49:56]: travis
[2018-05-16 20:49:56]: Running command 'unknown' with following parameters:
[2018-05-16 20:49:56]: error ShellCommand.run()
java.io.IOException: Cannot run program "unknown": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at com.github.noraui.utils.ShellCommand.run(ShellCommand.java:46)
at com.github.noraui.utils.ShellCommandUT.testUnknownSimpleCommand(ShellCommandUT.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 29 common frames omitted
class com.github.noraui.exception.TechnicalException
[2018-05-16 20:49:56]: Running command 'help' with following parameters:
[2018-05-16 20:49:56]: echo
[2018-05-16 20:49:56]: error ShellCommand.run()
java.io.IOException: Cannot run program "help": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:485)
at com.github.noraui.utils.ShellCommand.run(ShellCommand.java:46)
at com.github.noraui.utils.ShellCommandUT.testSimpleCommandWithParameters(ShellCommandUT.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 29 common frames omitted
[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.037 s <<< FAILURE! - in com.github.noraui.utils.ShellCommandUT

clickOnByJs failed with XPath containing quotes

Using When I click by js on 'MyPage-MyElement' from CommonSteps
If the .ini files which is referred by the PageElement is containing quotes, the Javascript execution will failed.

For instance, we were trying to use xpath=//img[@name="imgValider"].

We fixed it by chaining Utilities.getLocatorValue(toClick, args) to replace("\"", "\\\"")

Any chance to fix it in the next version ?

function passOver possibilities

stackoverflow #45618027

I'm working on autotest with noraui.

I would like to open a subdropdown (button => click => dropdown => passOver => subdropdown). This subdropdown can only appear with a passOver, if we click on the dropdownmenu, nothing happen.

vjltq

But my passOver function doesn't work

protected void passOver(PageElement element) throws TechnicalException, FailureException {

try {
    String javascript = "var evObj = document.createEvent('MouseEvents');" + "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);"
            + "arguments[0].dispatchEvent(evObj);";
    ((JavascriptExecutor) getDriver()).executeScript(javascript, Context.waitUntil(ExpectedConditions.presenceOfElementLocated(Utilities.getLocator(element))));
} catch (Exception e) {
    new Result.Failure<>(e.getMessage(), Messages.format(Messages.FAIL_MESSAGE_UNABLE_TO_PASS_OVER_ELEMENT, element, element.getPage().getApplication()), true,
            element.getPage().getCallBack());
}

}
The steps code

@when("I pass over on '(.)-(.)'")
public void passOver(String page, String toPassOver) throws TechnicalException, FailureException {

loggerStep.debug(page + " passOver: " + toPassOver);
passOver(Page.getInstance(page).getPageElementByKey('-' + toPassOver)); }
I'm looking for passOver works like a mouse hovering the dropdownmenu ("Mise à jour").

Unit test KO on RestJson (initColumns)

2018-04-30 21:25:52]: Context > initializeEnv()
[2018-04-30 21:25:52]: Reading properties file (demoRestJson.properties).
[2018-04-30 21:25:52]: Loaded properties from demoRestJson.properties = {model.packages=com.github.noraui.application.model, countries=http://localhost:4200/#/login, dataProvider.out.type=REST, dataProvider.rest.type=JSON, selectors.version=V1, logogame=https://noraui.github.io/demo/logogame/v1, dataProvider.rest.hostname=http://localhost, dataProvider.in.type=REST, timeout=3, authentication=, dataProvider.rest.port=8084, demo=https://noraui.github.io/demo/hello, display.stacktrace=true, https_proxy=, no_proxy=, locale=en, http_proxy=, browser=chrome}.
[2018-04-30 21:25:52]: Current locale used: en.
[2018-04-30 21:25:52]: Reading properties file (scenarios.properties).
[2018-04-30 21:25:52]: Loaded properties from scenarios.properties = {jouerAuJeuDesLogos=/steps/, hello=/steps/, LoginLogout=/steps/, playToLogoGame=/steps/, blog=/steps/, bonjour=/steps/}.
[2018-04-30 21:25:52]: Data provider used is REST.
[2018-04-30 21:25:52]: error MavenRunCounter.countNbCasFailuresAndSkipped()
java.lang.NullPointerException: null
at com.github.noraui.data.rest.RestDataProvider.initColumns(RestDataProvider.java:168)
at com.github.noraui.data.rest.RestDataProvider.prepare(RestDataProvider.java:75)
at com.github.noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:252)
at com.github.noraui.indus.MavenRunCounter.countNbCasFailuresAndSkipped(MavenRunCounter.java:94)
at com.github.noraui.indus.MavenRunCounter.count(MavenRunCounter.java:69)
at com.github.noraui.indus.Counter.main(Counter.java:51)
at com.github.noraui.indus.CounterUT.testRestJsonCounter(CounterUT.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:369)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:275)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:239)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:160)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:373)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:334)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:119)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:407)
[2018-04-30 21:25:52]: Scenario: hello => step: 87 and cases: 0 --> runs: 0, failures: 0, errors: 0 and skips: 0
[2018-04-30 21:25:52]: [RestJson] > <EXPECTED_RESULTS_1>0 Scenarios)</EXPECTED_RESULTS_1>
[2018-04-30 21:25:52]: [RestJson] > <EXPECTED_RESULTS_2>0 Steps )</EXPECTED_RESULTS_2>

Problem selenium wijmo 5.

Hello,

I am working on an application developed in Angular 5 using the library wijmo5, and i want to retrieve an item from a list (wj-combo box) developed with Wijmo 5, because this list is loaded with a remote server, i mean, when i enter a code an HTTP request will be sent to retrieved the list specific to this code and display it as a drop-down list.
The real problem is that the query takes 7 seconds (Max) to load this list so what i want to do is put a "wait" but it did not work.
I also want to rely on asynchronous calls but i don't know how to apply them using NoraUi robot.

Thank you =)

Translation fail in optional part

When I run all unit tests on "hello" scenario with French lang, I have this message in logs console:

java.lang.AssertionError: Échec : /!\ Accès à l'action « no exist element » dans demo. /!\ [Expected condition failed: waiting for element to be clickable: By.xpath: .//*[@id='fake'] (tried for 3 second(s) with 500 MILLISECONDS interval)]

NPE in UtilitiesUT

When running unit tests on NoraUi, one test is failed on UtilitiesUT.java at line 39.

Context.initApplicationDom(Runner.class.getClassLoader(), "V1", this.demoPage.getApplication());

demoPage is null but should be injected via Guice. This issue occurs only on this unit test so it is not blocking the v3.0.0 release.

Regards

add any information in logs (TechnicalException) if technical problem.

Summary

add any information in logs if technical problem.

Expected Behavior

noraui custom message in a TechnicalException

Current Behavior

java.lang.ArrayIndexOutOfBoundsException: 1
at com.github.noraui.application.steps.CommonSteps.clickOn(CommonSteps.java:387)
at ✽.Je clique sur 'demo.DemoPage-'(file:src/test/resources/steps/bonjour.feature:81)

java.lang.ArrayIndexOutOfBoundsException: 1
at com.github.noraui.application.steps.CommonSteps.clickOn(CommonSteps.java:387)
at ✽.I click on 'demo.DemoPage-'(file:src/test/resources/steps/hello.feature:80)

Possible Solution

add check on pageElement:

public void clickOn(String pageElement, List<GherkinStepCondition> conditions) throws TechnicalException, FailureException {
        String page = pageElement.split("-")[0];
        String elementName = pageElement.split("-")[1];
        ...

Steps to Reproduce (for bugs)

use a @When("I click on {string}(\\?)") without second element:

I click on 'demo.DemoPage-'

Context & Motivation

V4.0.0 more strong in case of bug

Your Environment

  • Robot generated by NoraUi Version: V4.0.0-SNAPSHOT
  • NoraUi Version used: V4.0.0-SNAPSHOT
  • Operating System and version: Unix and Windows
  • Data input provider: N/A
  • Data output provider: N/A
  • Browser and version: Chrome 75
  • Link to your project: http://noraui.github.io

ChromeDriver security feature of Sandboxing.

#37 Describe the bug

update chrome need https://stackoverflow.com/questions/60101367/security-considerations-chromedriver-webdriver-for-chrome/60111052#60111052

Current Behavior

robot can not run. I have this error:

Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

Possible Solution

It seems the issue is with ChromeDriver,s security feature of Sandboxing. To bypass this feature you can use the argument:

--no-sandbox

Steps to Reproduce (for bugs)

  1. update security on your environnement.

Context & Motivation

fix bug

Your Environment

  • Robot generated by NoraUi Version: V4.0.0.0
  • NoraUi Version used: V4.1.4
  • Operating System and version: Unix and Windows
  • Data input provider: Excel
  • Data output provider: Excel
  • Browser and version: Chrome 80.0.3987.122
  • WebDriver and version: ChromeDriver 80.0.3987.106
  • Link to your project: private

AuthUT Unit tests KO

[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 306.395 s <<< FAILURE! - in com.github.noraui.browser.AuthUT
[ERROR] testPageBehindAuthenticationWithWrongCredentials(com.github.noraui.browser.AuthUT) Time elapsed: 301.082 s <<< FAILURE!
java.lang.AssertionError:
Exception thrown: /!\ Opening the page PROTECTED. /!\ [timeout
(Session info: chrome=64.0.3282.167)
(Driver info: chromedriver=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.4.0-101-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:42:44.417Z'
System info: host: 'travis-job-c4aaa43a-be8c-4326-b201-c4bca4fe6ffc', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-101-generic', java.version: '1.8.0_151'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=LINUX, acceptSslCerts=false, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, platformName=LINUX, setWindowRect=true, unexpectedAlertBehaviour=accept, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881), userDataDir=/tmp/.org.chromium.Chromium.YC8nN4}, takesHeapSnapshot=true, pageLoadStrategy=normal, unhandledPromptBehavior=accept, databaseEnabled=false, handlesAlerts=true, version=64.0.3282.167, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
Session ID: ddb712f4d8eb0536f1fcd0c1081858df]
at com.github.noraui.browser.AuthUT.testPageBehindAuthenticationWithWrongCredentials(AuthUT.java:69)

NullPointerException with REST data provider on hello sample

Summary

Expected Behavior

Current Behavior

[2019-07-18 14:09:32]: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 8, Size: 8] with root cause
java.lang.IndexOutOfBoundsException: Index: 8, Size: 8
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.github.noraui.datas.web.services.service.impl.ModelServiceImpl.readLine(ModelServiceImpl.java:97)
at com.github.noraui.datas.web.services.rest.NoraUiDatasController.readLine(NoraUiDatasController.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
[2019-07-18 14:09:32]: JSON response is: {"timestamp":1563458972891,"status":500,"error":"Internal Server Error","exception":"java.lang.IndexOutOfBoundsException","message":"Index: 8, Size: 8","path":"/noraui/api/hello/line/9"}
[2019-07-18 14:09:32]: error MavenRunCounter.countNbCasFailuresAndSkipped()
java.lang.NullPointerException: null

Possible Solution

Steps to Reproduce (for bugs)

Context & Motivation

V4.0.0

Your Environment

  • Robot generated by NoraUi Version: V4.0.0-SNAPSHOT
  • NoraUi Version used: V4.0.0-SNAPSHOT
  • Operating System and version: linux
  • Data input provider: REST
  • Data output provider: REST
  • Browser and version: Chrome headless 75
  • Link to your project:

Different test with different class.

Hello,
I have two questions please :
1/ If we want to test two different tests, can we create two Java Steps classes to perform two different tests ?
2/ How to erase cookies and Refresh the page to test new data ?
Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.