PMC:QA:Improve sales order POC with Sahi

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Adempiere is base on an application dictionary, whenever a new field will make the sahi test fail.

This problem was point out by Carlos Ruiz in this irc talk PMC QA Meeting 20100407

In this document we are going to review a problem and a solution where as Sahi test are base on field order,

More:PMC:QA:Sahi for a dynamic fields

Improve sales order POC with Sahi Using DOM relations.please refer to:http://sahi.co.in/w/browser-accessor-apis

login Adempiere scripts

adlogin_test2.sah

_setValue(_textbox(0), "SuperUser");
_assertEqual("SuperUser",_getText(_textbox(0)));
_setValue(_password(0), "System");
_assertEqual("System",_getText(_password(0)));
_assertExists(_image("spacer.gif",_near(_cell("English"))));
_click(_image("spacer.gif",_near(_cell("English"))));
_assertExists(_cell("English"));
_click(_cell("English"));
_assertExists(_image("Ok24.png",_near(_table("login-btn z-button"))));
_click(_image("Ok24.png",_near(_table("login-btn z-button"))));
_assertExists(_image("spacer.gif",_near(_span("Role"))));
_click(_image("spacer.gif",_near(_span("Role"))));
_assertExists(_cell("GardenWorld Admin"));
_click(_cell("GardenWorld Admin"));
_assertExists(_image("spacer.gif",_near(_span("Client"))));
_click(_image("spacer.gif",_near(_span("Client"))));
_assertExists(_cell("GardenWorld"));
_click(_cell("GardenWorld"));
_click(_image("Ok24.png",_near(_table("login-btn z-button"))));

Login test result:

Jusa8.png

Sales Order creation scripts

_include("adlogin_test2.sah");
_assertExists(_span("z-tree-ico z-tree-root-close",_in(_div("Quote-to-Invoice"))));
_click(_span("z-tree-ico z-tree-root-close",_in(_div("Quote-to-Invoice"))));
_assertExists(_span("z-tree-ico z-tree-tee-close",_in(_div("Sales Orders"))));
_click(_span("z-tree-ico z-tree-tee-close",_in(_div("Sales Orders"))));
_assertExists(_image("mWindow.png",_in(_div("Sales Order"))));
_click(_image("mWindow.png",_in(_div("Sales Order"))));
_assertExists(_image("New24.png"));
_click(_image("New24.png"));
_assertExists(_cell("HQ"));
_assertExists(_image("spacer.gif",_near(_cell("HQ"))));
_click(_image("spacer.gif",_near(_cell("HQ"))));
_click(_cell("HQ"));
_assertExists(_cell("POS Order"));
_assertExists(_image("spacer.gif",_near(_cell("POS Order"))));
_click(_image("spacer.gif",_near(_cell("POS Order"))));
_click(_cell("POS Order"));
_setValue(_textbox("",_near(_span("Business Partner"))), "Joe Block");
_assertEqual("Joe Block",_getText(_textbox("",_near(_span("Business Partner")))));
_assertExists(_cell("HQ Warehouse"));
_assertExists(_image("spacer.gif",_near(_cell("HQ Warehouse"))));
_click(_image("spacer.gif",_near(_cell("HQ Warehouse"))));
_click(_cell("HQ Warehouse"));
_assertExists(_cell("Standard",_near(_span("Price List"))));
_assertExists(_image("spacer.gif",_near(_cell("Standard",_near(_span("Price List"))))));
_click(_image("spacer.gif",_near(_cell("Standard"))));
_click(_cell("Standard",_near(_span("Price List"))));
_assertExists(_cell("GardenAdmin"));
_assertExists(_image("spacer.gif",_near(_cell("GardenAdmin"))));
_click(_image("spacer.gif",_near(_cell("GardenAdmin"))));
_click(_cell("GardenAdmin"));
_assertExists(_image("Save24.png"));
_click(_image("Save24.png"));
_assertExists(_submit("Order Line"));
_click(_submit("Order Line"));
_assertExists(_image("Product10.png"));
_click(_image("Product10.png"));
_assertExists(_image("Refresh24.png",_in(_table("action-button z-button"))));
_click(_image("Refresh24.png",_in(_table("action-button z-button"))));
_assertExists(_div("Mary Consultant"));
_click(_div("Mary Consultant"));
_assertExists(_image("Ok24.png"));
_click(_image("Ok24.png"));
_assertExists(_image("spacer.gif",_near(_span("Discount %"))));
_click(_image("spacer.gif",_near(_span("Discount %"))));
_assertExists(_cell("Standard"));
_click(_cell("Standard"));
_assertExists(_image("Save24.png"));
_click(_image("Save24.png"));
_assertExists(_submit("Order"));
_click(_submit("Order"));
_assertEqual("Drafted",_getText(_textbox("",_near(_span("Document Status")))));
_assertExists(_image("Process16.png",_near(_span("Order Type"))));
_click(_image("Process16.png",_near(_span("Order Type"))));
_wait(1000);
_assertExists(_image("Ok24.png"));
_click(_image("Ok24.png"));
_wait(300000);
_assertEqual("Completed",_getText(_textbox("",_near(_span("Document Status")))));
_navigateTo("http://adresearch.xiancaro.com/webui/");
_click(_link("Log Out"));

tested,but has a problem:

when execute step complete order:

_assertExists(_image("Process16.png",_near(_span("Order Type"))));
_click(_image("Process16.png",_near(_span("Order Type"))));
_wait(1000);
_assertExists(_image("Ok24.png"));
_click(_image("Ok24.png"));
_wait(300000);
_assertEqual("Completed",_getText(_textbox("",_near(_span("Document Status")))));

Descriptions of the above scripts:

1)confirm complete button

2)click complete button

3)wait load popup window

4)confire ok button exists

5)click ok button to comfirm complete order.

6)wait process

7)confirm if the order is completed.

the status of adempiere is "Processing" all the while.

Jusa3.png

so the result of test:

Jusa4.png

I wait 5 minutes(or more) for the completion process,but the status still showed as the above.here the browser's FoxyProxy is localhost:9999(sahi's server and port)

configure browser's FoxyProxy and test by Sahi Contraller please refer to:PMC:QA:Research Sahi

I tested the order completion process in the browser(the browser's FoxyProxy:Disabled),order will be completed in one minute.

I haven't found how to solve this problem.

All the above test by Sahi Controller.


And I test them by commandline,but can't pass test:

_setValue(_textbox(0), "SuperUser");
_assertEqual("SuperUser",_getText(_textbox(0)));
_setValue(_password(0), "System");
_assertEqual("System",_getText(_password(0)));
_assertExists(_image("spacer.gif",_near(_cell("English"))));

Jusa7.png

the test result by eclipse also is failed.

There are some problems of assertion scripts,i posted them in sahi forums,will modify them later.

Summary

The above scripts have problem,they are not right(can't confirm the position of elements by Using DOM relations).Sorry about that!

Adempiere's html is a bit of complex,and the id of elemnent is dynamic.To confirm the position of element is a bit of difficult.if Adempiere webui integrate with IdGenerator,maybe make it easy.

correlation documents

Links