student note: Project PPT is provided it is a group project my part is to do these things: Dataset extension - Prepare a dataset with new REST API endpoints Prepare OMDB
API dataset for testing Run AGORA for all datasets and create the output report Deduplicate the dataset GitHub for the threshold value Need to do these and then upload them on Github on trello board from the pdf i have provided there are apis which are mentioned so we have to work on those apis only and on the first research question/n AGORA Revisited: A Replication Study on Innovative Test Oracle Generation for Advancing the Robustness of REST APIS PROJECT PLAN PRESENTATION Presentation By Parth Shah, Sankaranarayanan Srinivasan, Harshini Reddy Koukuntla, Taruni Movva February 14, 2024 The Research Questions This replication study aims to address the following primary research questions: a. How does the performance of AGORA scale with larger datasets of API requests and responses? Are there any bottlenecks in the system as the dataset size increases? b. How does detecting and reducing duplicate input requests affect the performance of AGORA's API testing process? c. How do different configurations of JSONMutator mutation operators affect the failure detection ratio achieved by AGORA? Run ↑ RQ - 1 : Evaluating AGORA's Performance with Larger Datasets Approach Overview: Developed two primary approaches to assess AGORA's scalability with enhanced datasets Approach 1: Expanded OMDB dataset with new sources like "Get Series Details by Season." Approach 2: Integrated Weather API obtained from APIs.guru for numerical data. › 100 › 500 > 1000 › 10000 swagger.yaml updated swagger.yaml GitHub > createOrganizationRepository >getOrganizationRepositories > Marvel.getComicByld OMDb > byldOrTitle bySearch > 50 > › 100 › 500 › 1000 >10000 swagger_bySearch.yaml › Spotify › Yelp ▾ YouTube > 50 GenerateInstrumentation x paths: a byid: get: tags: Movie Summary: Get Movie by IMDb ID operationId: byId parameters: name: 1 in: query description: IMDb ID of the movie or series required: true type: string responses: '2001: description: Successful operation schema: $ref: "#/definitions/MovieDetail" description: Not authenticated schema: $ref: "#/definitions/Error* Get Series Details by Season Document 1/1 paths: Get Series Details b... "D:\Ajay Softwares\Java\bin\java.exe" ... SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) Logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. WARNING: Object: &dictionaries¤cyConversion Lookup Rates only contains additional properties WARNING: Object: return.dictionaries.currencyConversion Lookup Rates only contains additional properties Successfully wrote to the file. Generated dtrace for 0 test cases Generated dtrace for 50 test cases Process finished with exit code 0 eet-main > src > test > resources > examples > OMDb > bySearch > swagger_bySearch.yaml File Edit Selection View Go Run Terminal Help O Search 0 目 m Restricted Mode is intended for safe code browsing. Trust this window to enable all features. Manage Learn More ! weather api.yaml x C> Users > chels > Downloads > ! weather api.yaml M 1 swagger: "2.0" 2 schemes: 3 - https 4 - http 5 host: api.weatherbit.io 6 basePath: /v2.0 info: 8 contact: 9 10 11 x-twitter: weatherbitio description: This an interactive version of the documentation for the Weatherbit API. The base URL for the API is [http://api.weatherbit.io/v2.0/](http://api.weatherbit.io/v title: Weatherbit Interactive Swagger UI Documentation 12 version: 2.0.0 13 x-apisguru-categories: 14 - location 15 x-logo: 16 17 url: https://api.apis.guru/v2/cache/logo/https twitter.com weatherbitio profile image.jpeg x-origin: 18 -format: swagger 19 url: https://www.weatherbit.io/static/swagger.json 20 version: "2.0" 21 x-providerName: weatherbit.io 22 produces: 23 -application/json 24 paths: 25 26 get: 27 "/alerts?lat (lat)&lon=(lon)": description: Returns severe weather alerts issued by meteorological agencies given a lat, and a lon. parameters: description: Latitude component of location. format: double 31 in: path name: lat 33 required: true type: number description: Longitude component of location. format: double in: path name: lon Restricted Mode A Wo 46:62 LF UTF-872 2 spaces Schema: Swagger 2.0 d 132 AM One of the sources incorporated to expand the OMDB dataset Q Search OpenAPI Spec for the Weather API Ln 1, Col 1 Spaces: 2 UTF-8 Data Expansion: Expanded OMDB dataset to include diverse sources suitable for various data types. Integration of Weather API to evaluate AGORA's ability in handling arithmetic comparisons. Analysis Process: Generated API responses for endpoints, ensuring adherence to OpenAPI format. Organized responses into folders by dataset size using POSTMAN tool. Utilized BEET and IntelliJ IDE for creating .decl and .dtrace files, and Docker for Daikon execution. Here is the example of the generated invariant for the weather API Response 1) weather-api&getCurrentWeather&200&data():::EXIT;data.attributes.temp is Numeric;daikon.inv.unary.string.IsNumeric; (data.attributes.temp) 2) weather-api&getCurrentWeather&200&data():::EXIT;data.attributes.weather one of {"Mild", "Sweltering", "Scorching", "Frost", "Cool", "Humid", "Rain", "Partly Cloudy", "Freezing", "Extreme Heat", "Muggy", "Chilly", "Breezy", "Clear", "Cloudy", "Wet"};daikon.inv.unary.scalar.OneOfScalar; (data.attributes.weather) 3) weather-api&getCurrentWeather&200&data():::EXIT;data.type == "weather";daikon.inv.binary.twoString.StringEqual; (data.type) snapshot of the generated endpoint testCaseId,queryParameters, operationId, path, httpMethod, headerParameters, statusCode, passed, failReason, responseBody a3965e08-0399-4cf6-8f5c-314c9a93c2ac, postal_code=100-0001, getWeatherOrAirQualityData,/current/airquality?postal_code={postal_code}, GET, Authorization-Bearer+randomAccessToken, 200, 2152205e-69c8-478e-b56e-3b8c95909919, city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current/airquality?city={city}&country={country}, GET,Authorization-Bearer+randomAccessTo 39eea48f-a209-4fea-9fc9-b9e4ba2a6984, postal_code=100-0001, getWeatherOrAirQualityData,/current/airquality?postal_code={postal_code), GET,Authorization-Bearer+randomAccessToken, 200, a5314703-9685-4aeb-9e18-13caa634abf1,city_id=12345, getWeatherOrAirQualityData,/current?city_id={city_id},GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none,"{'data': [{'typ cebef332-4ef0-4e9d-8c89-31255f438fe6, "cities-12345,67890", getWeatherOrAirQualityData,/current?cities-{cities}, GET, Authorization-Bearer+randomAccessToken, 200, TRUE, none," ,"{'data': [ 4e150be7-ee67-423e-834d-b7d152c9f271, city-Tokyo; country-Japan, getWeatherOrAir QualityData,/current/airquality?city={city}&country={country}, GET, Authorization-Bearer+randomAccessTo 2dd58f71-a15b-42c4-a212-7fef6dcc97ac, lat-35.6895; lon=-139.6917,getWeatherOrAirQualityData,/current/airquality?lat={lat}&lon={lon}, GET,Authorization-Bearer+randomAccessToken, 200, TR 8b4d165f-0281-4701-bdaa-82cae7a43aee, lat-35.6895; lon-139.6917, getWeatherOrAirQualityData,/current/airquality?lat-(lat)&lon={lon}, GET,Authorization-Bearer+randomAccessToken, 200, TR 1a7db91e-d00e-47b1-866f-8e84edb843c8, city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current?city={city)&country={country), GET, Authorization-Bearer+randomAccessToken, 200, TRU f08a0ed1-b050-41db-8934-5eb4f4524f52,city_id=12345, getWeatherOrAirQualityData,/current/airquality?city_id={city_id}, GET, Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'da 43e2544b-deef-4bb5-b2d5-3429e32c174d, city_id=12345, getWeatherOrAirQualityData,/current/airquality?city_id={city_id},GET,Authorization Bearer+randomAccessToken, 200, TRUE, none, "{'da ee57f81b-59a5-4d0c-b4be-9c362d83872e, city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current?city={city}&country={country), GET, Authorization-Bearer+randomAccessToken, 200, TRU bc6cd0fc-373e-46c0-854f-03cdbf7bbd46,lat-35.6895;lon-139.6917, getWeatherOrAirQualityData,/current/airquality?lat={lat}&lon={lon}, GET,Authorization Bearer+randomAccessToken, 200, TR bf23446b-90b1-42a4-8030-56e7ba26130c, city_id=12345, getWeatherOrAirQualityData,/current/airquality?city_id={city_id), GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'da 59a0fffd-15ad-4570-9afd-0ba280f25385,city_id=12345, getWeatherOrAirQualityData,/current/airquality?city_id={city_id}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{"da e352ab9d-6bfc-4baf-8990-8515a04265e4,city_id=12345, getWeatherOrAirQualityData,/current/airquality?city_id={city_id}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'da b488c179-55e6-4f7e-a6fe-cd026a114842,city_id=12345, getWeatherOrAirQualityData,/current/airquality?city_id={city_id}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'da c9a7fea5-8d43-4b85-a6b4-095c28961ecf, "cities-12345,67890", getWeatherOrAirQualityData,/current?cities={cities}, GET,Authorization Bearer+randomAccessToken, 200, TRUE, none, "{"data": [ ffb9392b-a6c9-4ba2-8bd9-fdb1658a1b62,city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current/airquality?city-(city)&country={country}, GET, Authorization-Bearer+randomAccessTo e3a628c8-01a2-4723-9776-8cf9a093c268, "cities-12345,67890", getWeatherOrAirQualityData,/current?cities={cities), GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'data': [ 093ca357-3252-4994-b2d7-f0cf24898f74,lat-35.6895;lon-139.6917, getWeatherOrAirQualityData,/alerts?lat={lat}&lon={lon}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'d 10a9e663-ac74-47e0-8815-abecf5598d91, postal_code=100-0001, getWeatherOrAirQualityData,/current/airquality?postal_code={postal_code), GET,Authorization-Bearer+randomAccessToken, 200, 0aeabfb3-8c35-4642-b30c-e48292c7c3f1,lat-35.6895; lon-139.6917,getWeatherOrAirQualityData,/current/airquality?lat={lat}&lon={lon}, GET,Authorization-Bearer+randomAccessToken, 200, TR b2521a3f-48c2-432b-98fa-4e6e0ed24882,lat-35.6895;lon-139.6917,getWeatherOrAirQualityData,/alerts?lat={lat}&lon={lon}, GET, Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'d 2344178a-d9c0-44d2-aacc-63f2a8b5e06b,"cities=12345,67890", getWeatherOrAirQualityData,/current?cities={cities}, GET, Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'data': [ 7968fd0b-c12a-4735-9314-40d5fea9f860, postal_code=100-0001, getWeatherOrAirQuality Data,/current/airquality?postal_code={postal_code), GET,Authorization-Bearer+randomAccessToken, 200, 2dc612a9-746d-439e-86eb-041a2c745d66,lat-35.6895;lon-139.6917, getWeather OrAirQualityData,/current/airquality?lat={lat}&lon={lon}, GET, Authorization-Bearer+randomAccessToken, 200, TR 61a917c7-bbdb-4a13-91d9-cde2ac6e5254,city_id=12345, getWeatherOrAirQualityData,/current?city_id={city_id},GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none,"{'data': [{'typ b353b381-f390-4321-95ab-9a1e9443681f, lat=35.6895;lon-139.6917,getWeatherOrAirQualityData,/current/airquality?lat={lat}&lon={lon}, GET,Authorization-Bearer+randomAccessToken, 200, TR 5be7f13e-8eb1-485c-bd0d-0687f5a170f1,city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current?city={city}&country={country}, GET, Authorization-Bearer+randomAccessToken, 200, TRU 958ed64c-5c51-4563-908c-054e09d83d14,city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current/airquality?city={city}&country={country}, GET, Authorization-Bearer+randomAccessTo 767eb59e-5dab-4a60-9537-0f15ba22395f,lat-35.6895;lon-139.6917, getWeatherOrAirQualityData,/alerts?lat={lat}&lon={lon}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'d 4b5ceba8-fd5a-4ea7-af61-d41cf1e88ca5,"cities-12345,67890", getWeatherOrAirQualityData,/current?cities={cities}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'data': [ cc197c5f-98eb-4a12-aeb7-1f7ef3ba70eb, city-Tokyo; country-Japan, getWeatherOrAirQualityData,/current?city={city}&country={country), GET,Authorization-Bearer+randomAccessToken, 200, TRU b2720581-bbc7-4dba-80c1-185e37d276e1, "cities-12345,67890", getWeatherOrAirQualityData,/current?cities={cities}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none, "{'data': [ 08cf1a99-32f2-4273-abdc-ab93c8b728f2,city_id=12345, getWeatherOrAirQualityData,/current?city_id={city_id}, GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none,"{'data': [{'typ dfaaaf69-d835-4d7a-89ca-9a4d98607b77,city_id=12345, getWeatherOrAirQualityData,/current?city_id={city_id},GET,Authorization-Bearer+randomAccessToken, 200, TRUE, none,"{"data": [{"typ In 1. Col1 Snaces: 4 UTF-8 cted Mode 0 o CRIF