Community Day 2021 - Regression Testing of Performance
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Community Day 2021 - Regression Testing of Performance
Let's move on to the next session of the day. Not to miss any sessions, subscribe to the event tag - #CommunityDay2021. We will be posting great content for the entire day today!
Regression Testing of Performance
by Alexandr Gubarev, TestComplete Senior Test Lead
The session takes a really deep dive into the subject. This talk is based on the experience of the TestComplete and ReadyAPI QA teams when they had decided to rapidly extend test suites to protect users from performance regressions.
This video will be useful for those who want to add performance checks to their functional tests, regardless of the type of application: Desktop, Web, Mobile, or even a web service. We will define a common approach when and for which scenarios you need to do regression performance testing, tell you about the useful features of TestComplete, learn advanced Google Sheets practices, and share recipes for quickly implementing performance checks in your tests.
Become a Community Day Winner!🏆
Watch the video sessions, post your questions and give Kudos to get the event points!
Read more about participation rules.
Watch the session:
The VideoRecorder extension developed by Alexandr mentioned in the interview.
Timestamps:
00:00 Speaker introduction
03:22 About regression and performance testing
04:45 Example of the case
06:04 Defining scenarios
09:28 Steps of tests
10:58 Using the Google Sheets for POC
11:53 TestComplete: aqPerfomance object
13:22 TestComplete: Time with Children in Log
15:15 TestComplete: Performance Counters monitoring
16:26 Demo: defining of the scenario
17:15 Demo: high-level steps
18:12 Demo: measuring
20:13 Demo: Google Sheets as storage
21:04 Demo: report table
22:43 Demo: creating web service on Google Sheets
24:51 Demo: how to publish your report for manager
25:22 Demo: work with web service from TestComplete
26:38 Demo: tests run
29:37 Some final words
Any questions on regression testing of performance? Ask away in the comments below!
Sonya Mihaljova
Community and Education Specialist
- Labels:
-
CommunityDay2021
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I want to start testing performance of our desktop program but it seems that TestComplete truly has some kind of influence on this performance.
How can I avoid the influence of TestComplete/TestExecute on our performance tests?
(I tried to do this and got different timings daily, depending on how many programs are opened but even if it is only TC and our program to test it differs daily/hourly/...)
thanks!
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alexandr,
I know it is not part of this video but one thing I wanted to ask about is visibility for TestComplete
I have lots of regression testing that I would like my boss and company to have to audit purposes (test X last week)
I need to have visibility on this to show the results, how can this be done ?
Currently, you can export the results in a format on internet explorer can really use (.mht)
The log file can be limited to X amount - space saving
How can I get a system to link back to, and show results a week/month/year from now without exporting ALL the logs or pulling them in Jenkins
- bear in mind that when building tests the is a large percentage of failed/incomplete tests while building the final product
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, @Lee_M
thanks for interesting question.
TestComplete has two kind of results representation: ordinary log (which is more technical and mostly need to understand the cause of test failure) and summary (it contains high-level info about pass/failed scenarios).
If you need to show some high-level report for your boss, I'd recommend to use Summary representation (and it can be exported as JUnit and exported in some test reporting system, or just printed as PDF).
Also the next step can be to put the test set in some test orchestration system: Zephyr, AzureDevOps, or Jenkins (which is free to use).
It can give you merged report, scalability, different kind of representations and historical data.
Here some screenshots from Jenkins:
It stores also the "technical" logs, so, you can always can see them and it can options to clean the storage by scheduler.
Another thing which I like in Summary, that you can add all test cases / scenarios which you discussed with you boss or dev. And automate it one by one, and before non-automated-yet test cases just put Runner.Stop() - all the test cases which are not automated will be in Unexecuted group.
So, you boss can see in report the progress - how many tests already automated and what is in backlog. The technical details is usually not so important for management.
TestComplete QA Engineer
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alex,
Thank you very much for your answer
Unfortunately, the best fit solution for me, as you mentioned would be the Jenkins server which is currently out of scope for the next couple of months
A summary (high level) report is exactly what I need to generate, and have found more information on this page but is only available with test plans and not single runs
The JUnit style report is a good option but requires another piece of software which is not always the best option (looking for a link type like Jenkins - eg. - for test results click here - which could be done exporting the html files)
(Does SmartBear recommend any reporting apps ?)
when you export the html files, do you know if there is a way to add the test title to the report (with editing it manually)
-----------------
Not directly related:
Is there a way we can output the text name automatically - that I can add to, say, the event 'onStopTest'
e.g.
Log.Message("you have just ran: " + test.name)
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just off-topic note: dark theme is not the best one to be used for the demo video running on smaller monitors...
/Alex [Community Champion]
____
[Community Champions] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Champions]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Champion] signature is assigned on quarterly basis and is used with permission by SmartBear Software.
https://community.smartbear.com/t5/Community-Champions/About-the-Community-Champions-Program/gpm-p/252662
================================
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, @hannecroonen
Yes, the question is valid and quite complex. Its complexity, from my point of view, is based on two factors: "Observer effect" and environment instability.
Environment - from our experience, the best thing which we invent is the local physical server with only one virtual PC. The performance of this virtual PC is rely on the Recommended System Requirements of the product. So, it's quite isolated environment. We set the OS updates regularly, but every time pay attention that Windows updates do not bring the changes into performance. If they did, we try to figure out how to deal with it (sometimes we change baselines, sometime can fix the product or environment). All other time the updates are Off (because, you know, Windows 10 can download and install them any time). Then we measure some scenarios we try to exclude the unnecessary waitings, preparations and etc from the result timings. After that we try to analyze the dispersion and increase the number of measurements which neutralize the environment fluctuations. When we try to analyze why the environment is loaded, first of all we try to see what is in Events View of Windows.
"Observer effect" - it's obvious that the measurement tool brings some mess into results. Unfortunately, it is not only for QA, but it relies on more comprehensive rules. TestComplete (like any other automation tool) tries to manipulate the app process flow and measure it. Of cause the app and OS consume more resources for this. First of all, we need to set the goal. It we want to get very precise results - I cannot recommend to use any automation tools. It's better to get such results manually. But in this case you can also get errors of measurement. Just because our eyes and fingers are also not so good as we want.
But I'd prefer the "alarm" approach. Instead of "absolute scale" we can use "relative scale", so, we get results from tool like TestComplete and compare these results from results of the same tool. So, if we understand that something is worse than previous we get this alarm and after that can investigate this deeper with some additional tools like profilers: https://smartbear.com/product/aqtime-pro/features/performance-profiler/. The idea is to compare profiler results from "good" and "bad" test runs.
For the other steps to get more stable results - they are quite the same as for "Environment" - increase the number of measurements, exclude the unnecessary steps between really important actions. Additionally, try to turn off the Extensions in TestComplete, which are not necessary for your test (it can be: MSAA, UIAutomation) - but this doesn't add a lot of progress.
TestComplete QA Engineer
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>but is only available with test plans and not single runs
try to use aqTestCase object, maybe it helps
>Does SmartBear recommend any reporting apps
TestComplete has special support of Jenkins, AzureDevOps, Zephyr - these tools are for orchestration, but have their reporting as well.
This tools have their pros and cons. And maybe you need to choose one of it mostly not as reporting tool, but if you have plans to get additional value to your QA processes.
If we talk only about reporting systems, internally, we test how TestComplete works with Allure. And it works 🙂
>when you export the html files, do you know if there is a way to add the test title to the report (with editing it manually)
it depends how do you export the log. If you do it automatically, yes, you can set the name of the file:
TestComplete.exe "C:\My Projects\MySuite.pjs" /run /p:MyProj /exportLog:"C:\TestLogs\Log.html"
>Is there a way we can output the text name automatically - that I can add to, say, the event 'onStopTest'
not sure how you split the code by tests and what do you run, but maybe this helps for you:
function EventControl1_OnLogError(Sender, LogParams)
{
var strFoo = aqConvert.VarToStr(arguments.callee.caller);
Log.Message(strFoo.split(" ")[1].split("(")[0])
}
TestComplete QA Engineer
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, @AlexKaras
Thanks for this info, next time I'll definitely do it lighter.
I'm a huge fan of dark themes everywhere (just maybe because like to code at night), so, I couldn't to stop myself to promote this dark theme in TestComplete one more time 🙂
TestComplete QA Engineer
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
> we test how TestComplete works with Allure. And it works
Sounds really promising. Is it possible to prepare another demo or a sort of a HowTo article with an example?
/Alex [Community Champion]
____
[Community Champions] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Champions]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Champion] signature is assigned on quarterly basis and is used with permission by SmartBear Software.
https://community.smartbear.com/t5/Community-Champions/About-the-Community-Champions-Program/gpm-p/252662
================================
