Я недавно начал изучать автоматическое тестирование Rest Api с помощью RestSharp.Я был в состоянии выполнить базовый тест для некоторого API отдыха.Однако для того же теста в составе новой сборки разработчики добавили функцию авторизации, которая называется Oauth2.Я не уверен, как и где это реализовать.Я приложил очень простой тест на получение и некоторую информацию, которая может понадобиться вам, чтобы помочь мне.
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Windows.Input;
using System.Windows.Forms;
using System.Drawing;
using Microsoft.VisualStudio.TestTools.UITesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UITest.Extension;
using Keyboard = Microsoft.VisualStudio.TestTools.UITesting.Keyboard;
using RestSharp;
using System.Net;
using RestSharp.Authenticators;
namespace RestApiTest
{
[CodedUITest]
public class TestApi
{
[TestMethod]
public void TestGetApi()
{
//https://XYZtestsample.azurewebsites.net/ - previous link, without authorization it works fine when passed as Restclient argument
var client = new RestClient("http://XYZarsuitewswagger-XYZarsuitestaging.azurewebsites.net/"); //--- This one has authentication header and does not work.
//HttpBasicAuthenticator obj = new HttpBasicAuthenticator("XYZ.XYZ@in.XYZ.com", "XYZ@2019");
var request = new RestRequest("/XYZARSuiteAPI/v1/BUProfiles", Method.GET);
// request.AddHeader("XYZ.XYZ@in.XYZ.com", "XYZ@2019");
request.RequestFormat = DataFormat.Json;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
//new OAuth2Authenticator("XYZ.XYZ@in.abb.com", "XYZ@2019");
IRestResponse response = client.Execute(request);
var content = response.Content;
}
Ниже приведена информация, которую я вижу в Rest Api
Информация об авторизации Rest Api
Rest ApiИнформация запроса
ОБНОВЛЕНИЕ: у меня есть опция авторизации, доступная в примере пользовательского интерфейса, чтобы проверить вывод, когда я авторизовал его, я получил ниже информации
curl -X GET "http://XYZarsuitewswagger -XYZarsuitestaging.azurewebsites.net / XYZARSuiteAPI / v1 / BUProfiles"-H "принимает: применение / JSON" -H" разрешение: Знаменосец eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ii1zeE1KTUxDSURXTVRQdlp5SjZ0eC1DRHh3MCIsImtpZCI6Ii1zeE1KTUxDSURXTVRQdlp5SjZ0eC1DRHh3MCJ9..rJ1VDhjE3NDMnW5pdv8N02OsKX3vKBO0bTxo2Lx_KZWq6eMi1DAvTXNd49tZhCJTr-PrCwbwsZsvf3fye_fNjL2VthlOA40UsvbPkou-F_b3B2kK3jzAdn8icbNEw5-3cxx8nAKiuDVZeRMTa3KVj0Kd384Eb6ZO5JBf4evoMCNMidrVAeKbxcP0B2tF8Aw1cgDWswNqghCUjb9foxxVIP-7MFeNFpuxGvLjtcQHIgY9VqMMpYBpE5DYLjqX0yXkGqBWnD4v-590wYtH0YPB-XOOtKZsy280PEHMock8jlLQdBNOp0w9SVw7XLfy5p0vp3ovHZqbb9IbSHQy-frV4g "
Спасибо.