Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slow test execution with SAP Fiori Elements test library #558

Closed
MiBe17 opened this issue Nov 10, 2023 · 9 comments
Closed

Slow test execution with SAP Fiori Elements test library #558

MiBe17 opened this issue Nov 10, 2023 · 9 comments
Labels

Comments

@MiBe17
Copy link

MiBe17 commented Nov 10, 2023

Describe the bug
We use the Fiori Elements Facade to test our FE app extensively and experience heavy performance problems in some cases. These problems occur mostly if we perform an action or an assertion on a control that exists multiple times on the current screen.
Example:

await FioriElementsFacade.execute((Given, When) => {
    When.onTheDocumentsList.onTable().iPressRow({
        "Title": "some title"
    });
});

The statement above takes a really long time to execute, if we have a lot of elements in the table. I think this happens since the Fiori Elements Facade converts each and every list element to the respective UI5 representation before finding and clicking the one with the correct title. The same is true if we e.g. try to click a button, when there are a lot of other sap.m.Button elements on the same page.

In plain wdi5, we could just use the get shorthand conveniences to avoid the conversion to UI5 objects in order to improve performance. As far as I know, we do not have this option when using the Fiori Elements Facade.

Do you have any suggestions on how to improve performance in such cases?
Regards!

@vobu
Copy link

vobu commented Nov 13, 2023

hi, thanks for checking in on this - the way we utilise the OData v4 test library from UI5 is by a simple wrapper, without adding any extra test library code. Thus the naming "Facade" in the "Fiori Elements Facade" aka "OData v4 test library Facade".
Would you mind helping us to get to the root cause of this?
A good starting point

  • for the Node.js-scope
    const addToQueueResponse = await addToQueue(methodCalls, this.browserInstance)

    → this is where all function calls are assembled to be passed to the browser
  • for client-side debugging in the browser could be
    return obj[methodInfo.name].apply(obj, methodInfo.args)

    → this is where all the OPA calls are executed in the browser-scope

Copy link

hey 👋 - silence for 30 days 🤐 ... anybody? 😀

@github-actions github-actions bot added the stale label Dec 14, 2023
@vobu vobu removed the stale label Dec 14, 2023
@vobu
Copy link

vobu commented Dec 14, 2023

even though there has been no comment, posting here to say that we're actively looking into it, combined with #557

Copy link

hey 👋 - silence for 30 days 🤐 ... anybody? 😀

@github-actions github-actions bot added the stale label Jan 14, 2024
@vobu
Copy link

vobu commented Jan 15, 2024

we're actively looking into reducing complexity in the client-side serialization → @sebbi08 is on that and it might help here too.
background: we just recently discovered that there's > 100 MB(!) on "context" objects on any given Fiori Elements UI control...

@vobu vobu removed the stale label Jan 15, 2024
Copy link

hey 👋 - silence for 30 days 🤐 ... anybody? 😀

@github-actions github-actions bot added the stale label Feb 15, 2024
@vobu
Copy link

vobu commented Feb 15, 2024

hey @MiBe17, did the latest improvements help to speed things up for you?

@github-actions github-actions bot removed the stale label Feb 16, 2024
Copy link

hey 👋 - silence for 30 days 🤐 ... anybody? 😀

@github-actions github-actions bot added the stale label Mar 17, 2024
Copy link

closed 📴 because silencio 🤫 since an additional 14 days after staleness 📠

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants