Commit Graph

278 Commits

Author SHA1 Message Date
Paul Adenot
ffabb84fc7 Bug 1825554 - Use monotonic clock to report durations in mach. r=firefox-build-system-reviewers,sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D174118
2023-04-04 11:13:30 +00:00
Greg Mierzwinski
ff2ddd542a Bug 1821708 - Add tests for the change-detector.r=perftest-reviewers,afinder
This patch adds tests for the new change-detector tool.

Differential Revision: https://phabricator.services.mozilla.com/D172283
2023-03-28 11:16:52 +00:00
Greg Mierzwinski
57bae0188c Bug 1821708 - Add performance change detector to mach perftest-tools. r=perftest-reviewers,kshampur,AlexandruIonescu
This patch adds a new tool that runs a comparison between two, or more revisions to detect performance changes. Some changes are made to accommodate this new tool alongside the side-by-side tool. The tests for the detector coding are found in another patch in the series. A mozperftest-tools update to 0.2.5 is required for this change.

There is also a CI task that is added in this patch. It's setup in the mach try perf patch in this series, which also has more information.

Differential Revision: https://phabricator.services.mozilla.com/D172282
2023-03-28 11:16:51 +00:00
Greg Mierzwinski
b5deb4adf2 Bug 1613455 - Allow custom APK uploads for Geckoview/Fenix perftests. r=perftest-reviewers,afinder
This patch allows mobile developers to upload custom APKs for testing through a commit. This allows them to run our performance tests by building locally, and then uploading to CI to run tests there.

The `./mach try perf` command is modified to make this simpler. It accepts either an environment variable, or a path to an APK, and copies it in-tree. After adding it to hg, the command stops running and asks the user to commit the changes. From there the user re-runs the `./mach try perf` command to select the appropriate tests.

Using --browsertime-upload-apk, users can use a custom APK for browsertime tests, and using --mozperftest-upload-apk, users can use a custom APK in mozperftest tests. The reason it's done this way is that we don't have common areas between the two frameworks. The methods are the same in both cases, i.e. for a fenix test, a fenix APK needs to be uploaded.

Differential Revision: https://phabricator.services.mozilla.com/D172435
2023-03-23 13:43:45 +00:00
Iulian Moraru
540cf0521d Backed out changeset faa1c03828fe (bug 1613455) for causing btime failures. CLOSED TREE 2023-03-22 19:10:02 +02:00
Greg Mierzwinski
d9c9e6a248 Bug 1613455 - Allow custom APK uploads for Geckoview/Fenix perftests. r=perftest-reviewers,afinder
This patch allows mobile developers to upload custom APKs for testing through a commit. This allows them to run our performance tests by building locally, and then uploading to CI to run tests there.

The `./mach try perf` command is modified to make this simpler. It accepts either an environment variable, or a path to an APK, and copies it in-tree. After adding it to hg, the command stops running and asks the user to commit the changes. From there the user re-runs the `./mach try perf` command to select the appropriate tests.

Using --browsertime-upload-apk, users can use a custom APK for browsertime tests, and using --mozperftest-upload-apk, users can use a custom APK in mozperftest tests. The reason it's done this way is that we don't have common areas between the two frameworks. The methods are the same in both cases, i.e. for a fenix test, a fenix APK needs to be uploaded.

Differential Revision: https://phabricator.services.mozilla.com/D172435
2023-03-22 12:30:17 +00:00
Greg Mierzwinski
25b79087e6 Bug 1784176 - Add a feature for manual logins for recording sites. r=perftest-reviewers,AlexandruIonescu
This patch adds the ability to run manual logins for our websites since it can be simpler, and quicker in some cases. At the same time, a bug with the options handling is fixed.

Differential Revision: https://phabricator.services.mozilla.com/D164590
2023-03-20 14:42:45 +00:00
Andrew Halberstadt
441546dc79 Bug 1811850 - [lint] Replace isort linter with ruff, r=taskgraph-reviewers,linter-reviewers,marco,jcristau
This results in some changes from our current `isort` configuration. I'm
unclear if it's because ruff isn't at 100% parity with isort, they choose
different defaults or if I missed some configuration.

Either way, the changes all look reasonable to me (see child commit), so I'm
inclined to just accept the new import format it imposes.

Differential Revision: https://phabricator.services.mozilla.com/D172348
2023-03-20 13:06:27 +00:00
Cristian Tuns
c1b52fd95e Backed out 5 changesets (bug 1811850) for causing linting bustages(bugzilla) CLOSED TREE
Backed out changeset e8fcfc7f8108 (bug 1811850)
Backed out changeset f8950d716c9e (bug 1811850)
Backed out changeset f650123cc188 (bug 1811850)
Backed out changeset d96f90c2c58b (bug 1811850)
Backed out changeset c3b0f9666183 (bug 1811850)
2023-03-16 22:16:30 -04:00
Andrew Halberstadt
8b4f890651 Bug 1811850 - [lint] Replace isort linter with ruff, r=taskgraph-reviewers,linter-reviewers,marco,jcristau
This results in some changes from our current `isort` configuration. I'm
unclear if it's because ruff isn't at 100% parity with isort, they choose
different defaults or if I missed some configuration.

Either way, the changes all look reasonable to me (see child commit), so I'm
inclined to just accept the new import format it imposes.

Differential Revision: https://phabricator.services.mozilla.com/D172348
2023-03-17 01:53:59 +00:00
Greg Mierzwinski
673064a167 Bug 1821705 - Improve testing for perftestetl.py file. r=perftest-reviewers,afinder DONTBUILD
This patch fixes an issue in our perftestetl.py which was causing our coverage percent to drop "artificially". This is happening because there's a bit of code that's unreachable because of an exception that would always be triggered before it. This patch removes the unreachable code, and replaces it with an exception.

Differential Revision: https://phabricator.services.mozilla.com/D172281
2023-03-13 12:50:34 +00:00
andrej
110e4fac1e Bug 1816042 - WPT permafail JSONDecodeError. r=perftest-reviewers,AlexandruIonescu,sparky
Differential Revision: https://phabricator.services.mozilla.com/D170101
2023-03-06 18:31:27 +00:00
Greg Mierzwinski
1dc7ff9b55 Bug 1816171 - Update, and add a test for new summarization methods. r=perftest-reviewers,kshampur
This patch updates the existing tests so that they're inline with the new default of providing no summary value at the suite level. A new test is also added to test out custom transforms.

Differential Revision: https://phabricator.services.mozilla.com/D171613
2023-03-06 17:37:06 +00:00
Greg Mierzwinski
915fe6cd07 Bug 1816171 - Default to no summary value for suites in the perfherder layer. r=perftest-reviewers,kshampur
This patch removes the default summary value for perfherder suites. Afterwards, no summary value will be produced unless a new Transformer is provided, or the existing ones are modified.

The patch goes further and creates a path through which we can let users modify the suites, and subtest in any way they want. This is done by adding two new methods that can be added to the transformer being used on the data. Some changes also needed to be made to the MetricsStorage so that we keep track of the transformer. They can be specified on a per-subtest basis some day, but right now it applies a single transformer to all subtests of a given suite/data-type.

Differential Revision: https://phabricator.services.mozilla.com/D171612
2023-03-06 17:37:05 +00:00
Alex Ionescu
1d85b5a57d Bug 1817786 - Update perftest_tools version to 0.1.13 r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D170601
2023-02-24 08:07:41 +00:00
Johan Lorenzo
35d2276cdc Bug 1818225 - part 2: Remove outdated "focus" indices r=sparky
Depends on D170732

Differential Revision: https://phabricator.services.mozilla.com/D170733
2023-02-23 15:31:25 +00:00
Johan Lorenzo
6661c0654a Bug 1818225 - part 1: Add missing "fenix" in artfact path r=sparky
Differential Revision: https://phabricator.services.mozilla.com/D170732
2023-02-23 15:31:25 +00:00
Johan Lorenzo
3dd2dfbeea Bug 1816483 - part 2: Update Focus nightly routes r=sparky
Depends on D170076

Differential Revision: https://phabricator.services.mozilla.com/D170077
2023-02-21 14:40:20 +00:00
Johan Lorenzo
99042652be Bug 1816483 - part 1: Update Fenix nightly routes r=sparky
Differential Revision: https://phabricator.services.mozilla.com/D170076
2023-02-21 14:40:19 +00:00
Greg Mierzwinski
28dfb3982f Bug 1811546 - Clean up docs, and add FAQ section to the mach try perf docs. r=perftest-reviewers,kshampur
This patch adds an FAQ (Frequently Asked Questions) section to the mach try perf docs. It also does a small cleanup to move fxrecord into the `testing/performance` folder, re-organize the linting configuration file, fix file naming, and captializes the `mozperftest` and `fxrecord` title names in the side-bar. Lastly, it adds a warning to the `mozperftest` docs to direct people who make it there to the `mach try perf` page.

Differential Revision: https://phabricator.services.mozilla.com/D167555
2023-01-23 18:31:31 +00:00
andrej
f241d92237 Bug 1808032 - Change architecture to arm64 and add focus to mozperftest android startup for CVFF and CVNS. r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D165748
2023-01-16 14:21:24 +00:00
Sylvestre Ledru
7b6a1139ad Bug 1807901 - Fix typos in some documentation directories r=linter-reviewers,andi DONTBUILD
Fix some typos in new directories

Differential Revision: https://phabricator.services.mozilla.com/D165660
2023-01-02 16:07:49 +00:00
Marco Castelluccio
d766c93a2a Bug 1801836 - Remove no longer necessary 'from __future__' imports under python/. r=linter-reviewers,glandium,ahal DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D165398
2022-12-23 01:26:15 +00:00
Marco Castelluccio
54ee6457a1 Bug 1790816 - Reformat python/ with isort. r=#linter-reviewers CLOSED TREE
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D162656
2022-12-21 09:56:15 +00:00
andrej
ef5d615597 Bug 1779822 - Create tests and CI for mozperftest later for Fenix and nightly startup benchmarks. r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D164130
2022-12-15 15:51:56 +00:00
andrej
5a7a352559 Bug 1779822 - Create new mozperftest later for Fenix and nightly startup bechmarks. r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D154126
2022-12-15 15:51:56 +00:00
Stanca Serban
404b6563bb Backed out changeset 311eb6a3a3ed (bug 1779822) for coverage related failures. CLOSED TREE 2022-12-15 16:25:29 +02:00
andrej
3bebb4742f Bug 1779822 - Create new mozperftest later for Fenix and nightly startup bechmarks. r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D154126
2022-12-15 13:54:10 +00:00
Alex Ionescu
3288f620ff Bug 1805143 - Remove output kwarg before calling side by side r=perftest-reviewers,sparky,afinder
Differential Revision: https://phabricator.services.mozilla.com/D164437
2022-12-15 12:18:04 +00:00
Iulian Moraru
4a67cb0362 Backed out changeset 088a627e5772 (bug 1805143) as per Alexandru Ionescu's request. CLOSED TREE 2022-12-14 20:38:58 +02:00
Alex Ionescu
0eef028f67 Bug 1805143 - Remove output kwarg before calling side by side r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D164437
2022-12-13 13:30:05 +00:00
Alex Ionescu
821423400b Bug 1804487 - Update perftest_tools version r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D164122
2022-12-07 20:18:14 +00:00
andrej
445c45dd63 Bug 1796780 - Add missed check to expired API key. r=perftest-reviewers,davehunt
Differential Revision: https://phabricator.services.mozilla.com/D162404
2022-11-18 16:25:07 +00:00
andrej
127249539f Bug 1796780 - WPT Max runtime exceeded failues. r=perftest-reviewers,AlexandruIonescu
Differential Revision: https://phabricator.services.mozilla.com/D161084
2022-11-15 14:06:25 +00:00
Alex Finder
d9f1a25427 Bug 1793823 disable p2 perf tests r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D159375
2022-11-03 14:42:39 +00:00
Alex Ionescu
cffbe6faec Bug 1789229 - Create/define the side-by-side job in taskcluster r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D157853
2022-10-20 07:23:10 +00:00
Alex Ionescu
e5da1f325e Bug 1789229 - Add side-by-side docs r=perftest-reviewers,sparky
Add docs and fix a local bug that prevents the command from running.

Differential Revision: https://phabricator.services.mozilla.com/D157920
2022-09-23 14:33:21 +00:00
Alex Ionescu
6f2827d689 Bug 1774181 - Provide a mozperftest command to generate a side-by-side comparison r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D149230
2022-09-02 15:52:42 +00:00
andrej
2afa39dd24 Bug 1786092 - Resolve a few miscalleanous WPT bugs. r=sparky,perftest-reviewers
What are we doing:
- Resolving a few bugs/user requests

Issues being addressed:
- Resolved issue where if the WPT_key.txt file is not available locally it does not affect running ./mach perftest-test
- Added section to WPT where we display the amount of tests we have remaining
- Altered the request_with_timeout function, to better handle requests

Differential Revision: https://phabricator.services.mozilla.com/D155268
2022-08-31 14:06:26 +00:00
Mike Hommey
efc8fa87e0 Bug 1762037 - Bump numpy and scipy to latest versions. r=jmaher
The older versions don't have prebuilt wheels for python 3.9 and newer.
Unfortunately, the latest versions don't support python 3.7 and older,
so keep the older versions for those.

Differential Revision: https://phabricator.services.mozilla.com/D152246
2022-07-20 20:31:14 +00:00
Steve Fink
612f01dc0c Bug 1774698 - Add mach perftests --browsertime-existing-results flag r=sparky
Differential Revision: https://phabricator.services.mozilla.com/D149581
2022-07-13 22:59:29 +00:00
andrej
b5f60d8890 Bug 1773621 - Remove panda.tv from list of sites tested on WebPageTest. r=perftest-reviewers,AlexandruIonescu
A week ago we received a notification that we had a test that the WPT chrome tests were perma failing on [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1773621 | bugzilla ]]
After going through the fail logs I realized it was because of website "panda.tv" directing to a unable to connect page message, after some digging it was not returning proper data because panda.tv has not been a company since March 2019(bankruptcy filing), why this only is causing an issue now I believe is because of some kind of update from WPT as I can see a noticeable UI difference on the test results page from before and after the failures started.

My resolution was to remove Panda.tv from our test list and that seems to have resolved the issue.

I also updated the error message to display which website is causing the issue so that if this happens again I don't need to go through each and every webpagetest result to know which of the 40 websites are having an issue.

Differential Revision: https://phabricator.services.mozilla.com/D149642
2022-06-20 14:16:41 +00:00
Kash Shampur
f336da34d2 Bug 1754830 - Fix browsertime installation in mozperftest. r=perftest-reviewers,sparky
The patch aims to improve the `_should_install()` method for installing browsertime in mozperftest.
Here, the same approach used in `testing/raptor/mach_commands.py` is used to address potential issues (e.g. KeyError)
that one may encounter when trying to install from the `package.json` through this approach.

Differential Revision: https://phabricator.services.mozilla.com/D148565
2022-06-14 13:47:10 +00:00
Kash Shampur
fcc64e2807 Bug 1754830 - Extend the login-logic to pageload tests in mozperftest. r=perftest-reviewers,sparky
This next patch in the series utilizes the same login-logic in Mozperftest and makes it available to the `pageload_test` method so that we can now automate the logging into of accounts during perftest recordings.
Additional logic is also added to account for if the site requires login, if we are running on CI or locally (and if on CI, accounting for the SCM level), and removal of the verbose flags so secrets do not leak.

Differential Revision: https://phabricator.services.mozilla.com/D147775
2022-06-14 13:47:09 +00:00
andrej
80d11774cc Bug 1767567 - Resolve WPT intermittent fail Issue r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D145638
2022-05-06 13:34:28 +00:00
andrej
23829f29b7 Bug 1766009 - Create WPT chrome job r=perftest-reviewers,sparky,davehunt
Differential Revision: https://phabricator.services.mozilla.com/D144444
2022-05-04 17:10:39 +00:00
Mitchell Hentges
9cf588867c Bug 1764466: Fix perftest-test invocation of modern pytest r=perftest-reviewers,sparky
* There is no `--duration` argument, but there //is// `--durations`
* `pytest` behaves better when called via its main entry points (either
  `bin/pytest`, or `-m pytest`)

Differential Revision: https://phabricator.services.mozilla.com/D143609
2022-04-13 20:07:17 +00:00
andrej
6cbd9c7da7 Bug 1741975 - Have WPT tests available in taskcluster r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D140843
2022-04-01 16:59:17 +00:00
Mitchell Hentges
14386d0c7e Bug 1717104: Activate virtualenv before running command r=perftest-reviewers,ahal,AlexandruIonescu
All commands declaring a virtualenv will have them activated before the
command executes. Removes all now-redundant manual activations of
declared virtualenvs.

Commands that don't declare a virtualenv will still implicitly be
associated with the "common" virtualenv, but unlike explicit
virtualenv declarations it'll have to be activated manually, just
like it was before this patch.

To smooth the migration with existing usages, virtualenv activation
behaviour was changed slightly: if attempting to activate a new
virtualenv, but the source venv is already command venv, then raise an
exception. (In the future, we should improve testability of
virtualenv scaffolding logic so that tests can be added for this
sort of thing.) This did cause some issues with some tests, which
will be solved more cleanly with bug 1724273. In the meantime,
minimal modifications were made to failing tests to keep them green:
* `test_command_line.py` was activating the `common` virtualenv so
  that it could install `mozproxy`, and use its CLI. Instead, I
  modified the test to use `mozproxy` using the "module" interface
  (`python -m mozproxy ...`). At that point, `MozbuildObject` was
  unnecessary and usages were replaced with simpler variants.
* `test_vendor.py` needed its explicit `activate_virtualenv()` call
  patched out. It still needs to use a virtualenv's Python
  executable, but due to `sys.executable` now being kept up-to-date
  as of bug 1717051, it could be used directly.

Differential Revision: https://phabricator.services.mozilla.com/D122892
2022-03-23 14:50:45 +00:00
andrej
950f616c3e Bug 1741971 - Add MozPerfTest Testing Section to WPT Layer r=perftest-reviewers,sparky
Depends on D133785

Differential Revision: https://phabricator.services.mozilla.com/D137459
2022-03-09 20:53:29 +00:00