Opened 10 months ago

Closed 4 weeks ago

#1439 closed defect (fixed)

Automated testing of web interfaces (SECORE, petascope)

Reported by: dmisev Owned by: bphamhuu
Priority: major Milestone: 9.5
Component: systemtest Version: development
Keywords: Cc: vmerticariu
Complexity: Medium

Description

By this I mean the interactive browser components, like the wcs-client at /rasdaman/ows or the SECORE interface.

Maybe with some of these libraries: https://wiki.python.org/moin/PythonTestingToolsTaxonomy#Web_Testing_Tools
Selenium is pretty popular I think, but maybe there is simpler/better ones.

Change History (7)

comment:1 Changed 10 months ago by dmisev

  • Owner changed from bphamhuu to vfrasineanu
  • Status changed from new to assigned

@Vlad please check with Bang about this ticket.

comment:2 Changed 10 months ago by bphamhuu

@Vfras: I have no idea how to test web interface but I'd learn from your experience. There are 2 GUI webclient tools from Rasdaman now which are not tested it on Graphic User Interface is:

+ WCS-client (the end point is (only test in local): http://localhost:8080/rasdaman/ows (you can have a look at this online: http://ows.rasdaman.org/rasdaman/ows). To test this web client tool, you need to understand about WCS and WCPS queries first (take your time to watch videos from Vlad, Alex here: https://www.youtube.com/channel/UCq5g2EMOsN1kuxwKbxgRzCw).

I suggest you practice with sample queries on your local endpoint (WCPS queries: http://rasdaman.org/browser/systemtest/testcases_services/test_wcps/queries/, WCS queries: http://rasdaman.org/browser/systemtest/testcases_services/test_wcs/queries (only use test case .kvp as client only support REST not SOAP).

When you get familiar with these queries, you can see that wcs-client is an useful tool to reduce the harness to write request queries by just choosing from GUI (for WCS) and for WCPS it can run the query in console and display image (PNG).

+ SECORE: bascially it is a XML database which store the definition for CRS (http://www.crs-geo.eu/nn_124224/crseu/EN/CRS__Overview/definition-crs__node.html?__nnn=true). The idea is there are many kind of projection for mapping image from satellite on Earth and each of them can have different parameters, other descriptions,... so SECORE is built to have a quick access to these stuffs. (http://rasdaman.org/wiki/SecoreDevGuide).

The end point for SECORE is http://localhost:8080/def/browse.jsp (we'll test add new definitions, delete definition(s) and update definition from here). I suggest you click in any CRS definition in the endpoint and try to update it by changing some information, remove it by clicking on delete and add it by copy the definition from other one and try to add the new one). When add new CRS like this, add some random prefix after the original gml:identifer which you copied (gml:identifier must be unique or it will update the old one instead).

In any case have error due to you break these tools (especially SECORE), remove webapp (rasdaman, def from Tomcats) and install them again by make install. To have the test coverages, run test.sh from testcases_services/test_all_wcst_import.

comment:3 Changed 10 months ago by dmisev

No need to get into WCS/WCPS (and watch videos, etc), single queries with text/image output is sufficient (and Bang can provide them).

comment:4 Changed 10 months ago by bphamhuu

If Vfrash understood all the queries then he just need to test in WCS-client with WCPS (WCS query is generated from the GUI so don't have to test query) by:
+ image>>for c in (test_mean_summer_airtemp) return encode(c, "png") will expect have an image in the console.
+ for c in (test_mean_summer_airtemp) return avg(c) will expect to return a scalar value.
+ diagram>>for c in (test_mean_summer_airtemp) return encode(c[Lat(-40), Long(130:150)], "csv") will expect to return a chart.
+ for c in (test_mean_summer_airtemp) return encode(c[Lat(-40), Long(130:150)], "ttt") will expect to return error.

comment:5 Changed 10 months ago by dmisev

Well but that's the point, we want to test the GUI works, not WCPS/WCS queries. We have test_wcps etc. for that.

comment:6 Changed 7 weeks ago by bphamhuu

  • Cc mdumitru removed
  • Milestone changed from 10.0 to 9.5
  • Owner changed from vfrasineanu to bphamhuu

comment:7 Changed 4 weeks ago by bphamhuu

  • Resolution set to fixed
  • Status changed from assigned to closed

NOTE: This patch for the ticket only runs on Centos 7 (as each VM will return different outputs because of font-size, style,...). Also, even using same Centos 7, the output from developer can be different from VM of Jenkins (the problem could be VM does not have the GUI), so it needs to submit the patch to patchmanager and copy the output from VM to override the oracle files for the patch every time.

Note: See TracTickets for help on using tickets.