Recent

Author Topic: RobotFramework library to enable GUI-based functional automated testing.  (Read 2040 times)

NicJK

  • Newbie
  • Posts: 3
1. Executive Summary
As a RobotFramework user (aka Tester/Test Engineer) and LazarusIDE user (aka Programmer),
I would greatly benefit from a library that can be used with RobotFramework to easily enable more levels of testing (System Integration, Acceptance, Maintenance) via the GUI's component properties,
So that I can speed up regression testing and still benefit from the great features and community  that already comes with RobotFramework.

2. What is RobotFramework?
Robot Framework is a generic open source automation framework. It can be used for test automation and robotic process automation (RPA).1

3. Benefits?
  • Fast product stability feedback from automated regression testing;
  • Integrating with an existing test framework support broader adoption of improved development processes;
  • Should be easier and cheaper(time, money, resources) to maintain a Lazarus Component Library test library instead of developing and maintaining a unique seperate tool;
  • Might attract more contributors to the Lazarus and Pascal communities;
  • Actions performed at the GUI control's property (id for example) is much more reliable, faster, and maintainable than image recognition frameworks such as Sikuli3.
  • Enable data generation via the GUI in situations where back ends were not considering testable design;

4. Current Options and Alternatives
1. Sikuli3 : an open-source GUI based test automation tool. It is mainly used for interacting with elements of web pages and handling windows based popups. Sikuli uses the technique of “Image Recognition” and “Control GUI” to interact with elements of web pages and windows popups. In Sikuli, all the web elements are taken as images and stored inside the project.

2. SwingLibrary4: Swing Library is a Robot Framework library for testing Java Swing applications.

3. LazGUI Tester5: Simple image based GUI testing tool.

5. Typical Acceptance Criteria
  • Lazarus Component Library RobotFramework library and source code
  • Getting Started Guide with a small sample application
  • Keywords Reference Guide
  • LCL Component Locator Reference Guide
  • New forum group

A. Reference(s):
« Last Edit: May 29, 2021, 03:37:07 pm by NicJK »

MarkMLl

  • Hero Member
  • *****
  • Posts: 2869
I would greatly benefit from a library that can be used with RobotFramework

I take it you're offering a bounty?

MarkMLl
Turbo Pascal v1 on CCP/M-86, multitasking with LAN and graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Handoko

  • Hero Member
  • *****
  • Posts: 4317
  • My goal: build my own game engine using Lazarus
A bounty? Cool. Tell us the price you are willing to offer, then you will get many proposals.

If you want it for totally free, just be patient.

NicJK

  • Newbie
  • Posts: 3
A bounty? Cool. Tell us the price you are willing to offer, then you will get many proposals.

If you want it for totally free, just be patient.

 :) :-[ I guess I can get a KickStarter or some crowdfunding going.  :D

Bounty programmes is a great approach instead of using fiverr. Will surely need to figure out how to get money "out" of South Africa or bounties should have specific rules I guess. Will also need to do some estimations regarding a realistic price or legal forms of remuneration.  %)

Handoko

  • Hero Member
  • *****
  • Posts: 4317
  • My goal: build my own game engine using Lazarus
I was joking. Don't take it seriously.

I saw you're new here.
Welcome to the forum.

Maybe you haven't known, most users here are busy. I saw it often, suggestions asked but rejected. Their ideas are actually good but unfortunately no one has the spare time to work on it to make it happens. So, don't be sad if your suggestion is being ignored.

But hey, people here are nice. If you take your first step to work on it, some may join in to the project. If you have any problem, just ask. You will get many helpful answers.

But if you need to get it quick and professional result, you can try to start a bounty.
https://wiki.lazarus.freepascal.org/Bounties
« Last Edit: May 29, 2021, 05:16:19 pm by Handoko »

MarkMLl

  • Hero Member
  • *****
  • Posts: 2869
I echo what Handoko says. But apart from offering a substantial bounty, there are two possible ways of moving this forward:

a) Make a start at writing an Object Pascal binding for the C (?) libraries, then ask here when you're stuck.

b) Present a compelling argument why it's to the community's advantage to work on this.

MarkMLl
Turbo Pascal v1 on CCP/M-86, multitasking with LAN and graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

NicJK

  • Newbie
  • Posts: 3
Thank you for the pointers @Handoko and @MarkMLl :)


MarkMLl

  • Hero Member
  • *****
  • Posts: 2869
If there's already a C (as distinct from C++) binding you'll find that much of the conversion work can be handled semi-automatically by h2pas.

Again, when you get stuck come back with specific questions.

MarkMLl
Turbo Pascal v1 on CCP/M-86, multitasking with LAN and graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

 

TinyPortal © 2005-2018