zl程序教程

您现在的位置是:首页 >  其它

当前栏目

why My Lead OPA test add Lead fails

my test add why lead OPA
2023-09-14 09:02:42 时间

When you perform OPA test for my lead application, test case “add Lead” via this url:
It will fail:

The reason could be analyzed via the below picture:

Our OPA test code calls fireLiveChange function.
The live change event handling written in My lead application code is called, which performs oModel.read to read possible values for “f”. Since we pass “true” to read API, this read is done asynchronously, that is, the execution flow directly returns to our OPA code.
Our OPA test code calls oInput.getSuggestionItems. Unfortunately Items is now still initial, since the asynchronous OData call does not finish yet in timeslot t1.
items[0].getText causes the failure of OPA test.
Till timeslot t2, OData request is done and success handling is called, to fill the SuggestionItems aggregation. t2 > t1, it is too late now.
For detail screenshot of the above five steps, please refer to picture below.

Screenshot for step1

Screenshot for step2

Screenshot for step3

Screenshot for step5

Solution

We would like to achieve the following call sequences:

As suggested by Diablo, we could try “wait for aggregation” concept and API to fulfill it:
http://veui5infra.dhcp.wdf.sap.corp:8080/sapui5-sdk-dist/docs/api/symbols/sap.ui.test.matchers.html
To be updated soon.

I have added the new matcher mentioned in wiki and now OPA test of add Lead test succeeds.

To summarize,
The newly added matcher will lead to an endless loop by a periodical check with polling interval 400 milliseconds by default, as a result the asynchronously executed OData request has enough time to finish.
In the end we have the following expected time sequence chart.

If you would like to debug matcher logic, please set breakpoint on line below.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":