Closed

Benchmark WebApi Core

Web Api Benchmark utility

Create a DotNet Core 2.1 Console Application to benchmark the execution speed of Web Api Core 2.1 authentication and invocation.

Inside a VM I have an OAuth2 server running. You need to create a set of usernames and password and arbitrary JWT Claims on this server (a very quick task that takes up to maximum 15 minutes). This server runs local and may NOT be copied to outside the VM, as it is proprietary. You should thus develop inside this VM to which I will give you access. PLEASE ACKNOWLEDGE THAT YOU READ AND UNDERSTOOD THIS SPECIFIC REQUIREMENT!

Create a simple Web Api with 1 GET method which returns a static string (specified in [login to view URL]). It also should have 1 POST method, having in the BODY a Geometry (4326) parameter, which inside it contains a set of Lat/Long coordinates. I can supply you some sourcecode to show how to populate and use this datatype.

The POST method should return a static string, specified in [login to view URL], composed with the Lat/Long data.

First you login to the OAuth2 server, using the usernames and passwords you established on that server. It will return a long living token. Then you logon to OAuth2 server again, using the long living token, which returns a short living token. You use this short living token to authenticate to the test Web Api that you will create.

It should do this measuring in a multi-threaded way. All configuration data, like authentication keys, OAuth2 configuration properties, quantity of threads, time limit for each thread execution, should be specified and gathered from appsettings.json. Including the WebApi URIs should be specified in [login to view URL], in a list of addresses.

Measure and display the execution speed, for each of these steps, according to the quantity of worker threads specified in configuration, of the following:

1 - Web Api GET calls

    1a - No authentication (No OAuth2 relied server in the pipeline)

1b - No authentication (OAuth2 relied server in the pipeline; no authentication in the Controller)

1c - No authentication (OAuth2 relied server in the pipeline; no authentication in the Method)

1d - Authentication - Token without Claims; authentication in Controller

1e - Authentication - Token with 1 Claim; authentication in Controller

1f - Authentication - Token with 2 Claims; authentication in Controller

1g - Authentication - Token with 3 Claims; authentication in Controller

1h - Authentication - Token with 10 Claims; authentication in Controller

1i - Authentication - Token without Claims; authentication in Method

1j - Authentication - Token with 1 Claim; authentication in Method

1k - Authentication - Token with 2 Claims; authentication in Method

1l - Authentication - Token with 3 Claims; authentication in Method

1m - Authentication - Token with 10 Claims; authentication in Method

2 - Web Api POST calls (without BODY parameter)

    2a - No authentication (No OAuth2 relied server in the pipeline)

2b - No authentication (OAuth2 relied server in the pipeline; no authentication in the Controller)

2c - No authentication (OAuth2 relied server in the pipeline; no authentication in the Method)

2d - Authentication - Token without Claims; authentication in Controller

2e - Authentication - Token with 1 Claim; authentication in Controller

2f - Authentication - Token with 2 Claims; authentication in Controller

2g - Authentication - Token with 3 Claims; authentication in Controller

2h - Authentication - Token with 10 Claims; authentication in Controller

2i - Authentication - Token without Claims; authentication in Method

2j - Authentication - Token with 1 Claim; authentication in Method

2k - Authentication - Token with 2 Claims; authentication in Method

2l - Authentication - Token with 3 Claims; authentication in Method

2m - Authentication - Token with 10 Claims; authentication in Method

3 - Web Api POST calls (with BODY parameter: Geometry of type 4326)

    3a - No authentication (No OAuth2 relied server in the pipeline)

3b - No authentication (OAuth2 relied server in the pipeline; no authentication in the Controller)

3c - No authentication (OAuth2 relied server in the pipeline; no authentication in the Method)

3d - Authentication - Token without Claims; authentication in Controller

3e - Authentication - Token with 1 Claim; authentication in Controller

3f - Authentication - Token with 2 Claims; authentication in Controller

3g - Authentication - Token with 3 Claims; authentication in Controller

3h - Authentication - Token with 10 Claims; authentication in Controller

3i - Authentication - Token without Claims; authentication in Method

3j - Authentication - Token with 1 Claim; authentication in Method

3k - Authentication - Token with 2 Claims; authentication in Method

3l - Authentication - Token with 3 Claims; authentication in Method

3m - Authentication - Token with 10 Claims; authentication in Method

Run each of these steps sequentially, for the time specified in [login to view URL], and with the quantity of Theads specified in appsettings.json.

And for the quantity of elements to be executed within each step, specified in appsettings.json.

Measure the time of execution for each step, as well as the quantity of executed calls, and show this results data on the screen.

The purpose of this Utility is to determine how much performance impact the OAuth2 Token Authorization has, and also how much performance impact the OAuth2 Token authentication takes on Web Api Core 2.1 Controllers. Also, to measure how performant Web Api Core 2.1 is in different scenarios, including non-aurhenticated and authenticated.

DELIVERABLE: Visual Studio 2017 Solution with 2 projects in DotNet Core 2.1, being one with a test Web Api and one with the benchmark utility.

BUDGET: US$ 30 maximum.

Please type in beluga in your response to show that you read all these requirements.

Thanks for bidding.

Regards

Skills: .NET, OAuth

See more: .net core performance, why .net core is faster, asp.net core load testing, rest api benchmark, .net core load testing, .net core vs .net framework performance, .net core popularity, asp.net core vs node.js performance, fedora core ffmpeg php, spanish best regards latin, regards spanish, finish mail regards, fedora core ipsec, various animation thanks regards, regards translated german, cartoon hard core, vpn fedora core, authenticate clients linux ldap samba centos, warm regards translation german, fedora core php

About the Employer:
( 14 reviews ) São Paulo, Brazil

Project ID: #17717105