GithubHelp home page GithubHelp logo

totvs / oe-test-agent Goto Github PK

View Code? Open in Web Editor NEW
4.0 15.0 5.0 7.77 MB

An e2e tool for Progress OpenEdge applications with Protractor

JavaScript 1.32% TypeScript 35.06% OpenEdge ABL 43.53% AutoIt 20.09%
protractor e2e openedge openedge-abl

oe-test-agent's Introduction

OE Test Agent

An e2e tool for Progress OpenEdge applications with Protractor

Quick start

The OE Test Agent was developed in order to make our e2e test for OpenEdge applications easier.

Our dev team was already familiar with Protractor, so we took advantage of that to create this project using only socket communication between JavaScript and OE and an external tool - also created by us - called "Robot".

In other words, the OE Test Agent acts as a web driver of Protractor, allowing it to interact with OpenEdge applications as a user would. We also built a set of TypeScript libraries for helping developers to manipulate widgets, properties and events of OpenEdge applications, so that you can easily write tests in a traditional behavior-driven development style.

Installation

npm i oe-test-agent

Changelog

1.1.13

  • Solved a bug when using select to a value of a COMBO-BOX with LIST-ITEM-PAIRS.

1.1.7

  • Solved a bug when using select to a value of a RADIO-SET widget.

1.1.6

  • Solved a bug when using select to an invalid value.

1.1.5

  • Solved a bug when running an OE application without having the source (.p) in the PROPATH.
  • Solved a bug when taking a screenshot of a window.

1.1.4

  • The method takeScreenshot was changed to return the image filenames.
  • Created the method takeScreenshotFromProcess to take a screenshot from each window of a process.

1.1.3

  • Now it's possible to send a string value at windowSendKeys method.
  • Brazilian Portuguese titles are now supported at alertClick methods.
  • Now it's possible to send more than one title to Robot find a window - delimited by | characters.
  • Created the method takeScreenshot to take an OS screenshot and return the Base64 value from the image.
  • Now it's possible to update the default timeout value.

1.1.2

  • Solved a bud when using select method with a SELECT widget.

1.1.1, 1.1.0:

BREAKING CHANGES

  • The delete method was redefined to expect a where clause and not an object anymore
  • The returns was changed to return only a Promise<boolean>

1.0.11:

  • Solved a bug when enabling coverage

1.0.7, 1.0.8, 1.0.9, 1.0.10:

  • Solved a bug on the socket communication
  • Removed unused dependencies

1.0.6:

  • Solved a bug where OEElement isElementValid method was always returning true
  • Improvements made at waitForWindow and waitForElement methods

1.0.5:

  • Socket communication improvements
  • Created a method to return if an OEElement is valid or not
  • Created an OEAgent singleton instance to use at e2e that uses Page Objects

1.0.4:

  • Removed unused dependency
  • Created Keys enum - to use with windowSendKeys
  • Created static attribute DEFAULT_TIMEOUT - to use with waitFor methods
  • ENTRY event is now fired when using select and check

1.0.3:

  • Solved a bug when searching for elements using waitForElement or findElement
  • When executing selectRow for a empty BROWSE, no errors will be throw
  • Improvements on the socket communication
  • Changed return type to JavaScript's Promise instead of Protractor's promise.Promise
  • Included console messages when using "Robot"
  • Will set profiler's file only if none was defined

1.0.2:

  • README.md changes

1.0.1:

  • Documentation

Want to help?

You're welcome to open an issue to report bugs, suggest improvements on this GitHub or to submit a PR.

Other tools

In order to make this project work with all kinds of Progress OpenEdge applications, besides the socket communication, we had to build an auxiliary tool that we decided to call "Robot".

Robot.exe

If you are familiar with Progress OE applications, you probably know that visual messages - with VIEW-AS ALERT-BOX attributes - block every other execution until the user closes the current message.

To solve that, we created "Robot.exe". This tool - built using "Auto It" - simulates a mouse click to the opened message and can also send keyboard events to any other Windows application that is currently open.

Heads up! You may need to sign "Robot.exe" with a valid certificate or add it to your antivirus whitelist.

oe-test-agent's People

Stargazers

 avatar  avatar  avatar

Watchers

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

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.