PMC:QA:Improve sales order POC with Sahi
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
Contents
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:
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.
so the result of test:
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"))));
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
- Go back to PMC:QA