Repository navigation
Setup crank for performance tests - #2091
Conversation
| the `base=true` variable to the command, e.g.: | ||
|
|
||
| ```text | ||
| crank --config benchmarks.yml --scenario Service --profile local --variable base=true |
There was a problem hiding this comment.
I see if base=true then it will use the remote. To avoid confusion maybe call this out explicitly.
There was a problem hiding this comment.
It's local in the sense it runs locally on your machine. In the next PRs I intend to setup remote agents so you can run benchmarks on remote servers. But you will still have the option to either run your local copy of the code or the official repo. So base is probably not a good name, but local would be confusing. base=true means the official repo will be cloned to your agent (whether the agent is running locally or remotely), so any changes you've made locally won't be picked. It's meant to allow you to compare how changes affect the benchmarks compared to the official repo. Without base=true, your local project directory will be uploaded to the agent (whether the agent runs locally or remotely).
gathogojr
left a comment
There was a problem hiding this comment.
Left a few minor comments otherwise looks great. I'll try it out locally
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
Issues
Fixes #2089
Description
Adds Microsoft.Crank configuration and instructions for running benchmark tests.
Instructions on how to setup crank and run the benchmarks have been added to the README.
This PR has a lot file changes, but most of the changes are accidental fixes to the whitespace formatting, the main file changes are:
benchmarks.yml: this contains thecrankconfiguration. It tells crank how to build our benchmark projects and which scenarios to run. I tried to make it easy to run different scenarios (component tests, e2e tests, running against the main repo, etc.) and added instructions to the README.mdREADME.md: added instructions on how to setup and run the benchmarksOData.Test.Performance.sln,Microsoft.OData.Performance.ComponentTests.csproj,Microsoft.OData.Performance.ServiceTests.csproj: Thecrank-agentwas getting a hard time trying to build the projects, it was not able to properly parse the.csprojconfig. To fix this I re-created the solution and projects, now they have simpler configuration and only support .Net Core 3.1 (It should be possible to add support for net47 I believe). The IDE formatted the whitespace in the source files during this process, that's why there are many changed files. In the process I also removed obsoleteapp.config,packages.configandAssemblyInfo.csfiles.TestServiceFixture.cs: this class is used by the "e2e" service tests to launch the test web service. It was using an env variable to locate the path of the test service. This was not easy to pass correctly to the crank config, so I updated the code so that it can manually find the directory to the test service.PerformanceBuild.ps1: this is the old powershell script for building and running the performance benchmarks. I updated it to work with the changed project files. You can use it to run perf tests without having to setup crank.Checklist (Uncheck if it is not completed)
Additional work necessary
If documentation update is needed, please add "Docs Needed" label to the issue and provide details about the required document change in the issue.