From b3e1930d03865d54806ff3047a40f5b8ec7c7d1b Mon Sep 17 00:00:00 2001 From: Felix Date: Tue, 28 Jan 2020 16:50:40 +0100 Subject: [PATCH] Add script to test http api, fix two api calls --- server/query_testing/apache_bench_report.sh | 3 +- server/query_testing/api_benchmark.sh | 34 +++++++++++++++++++ .../query_testing/generate_explain_reports.sh | 3 +- server/src/api/site.rs | 4 +-- ui/src/services/WebSocketService.ts | 4 +-- 5 files changed, 42 insertions(+), 6 deletions(-) create mode 100755 server/query_testing/api_benchmark.sh diff --git a/server/query_testing/apache_bench_report.sh b/server/query_testing/apache_bench_report.sh index c22af73..62b3e86 100755 --- a/server/query_testing/apache_bench_report.sh +++ b/server/query_testing/apache_bench_report.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash +set -e declare -a arr=( "https://mastodon.social/" diff --git a/server/query_testing/api_benchmark.sh b/server/query_testing/api_benchmark.sh new file mode 100755 index 0000000..8f8c65f --- /dev/null +++ b/server/query_testing/api_benchmark.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -e + +# By default, this script runs against `http://127.0.0.1:8536`, but you can pass a different Lemmy instance, +# eg `./api_benchmark.sh "https://example.com"`. +DOMAIN=${1:-"http://127.0.0.1:8536"} + +declare -a arr=( +"/api/v1/site" +"/api/v1/categories" +"/api/v1/modlog" +"/api/v1/search?q=test&type_=Posts&sort=Hot" +"/api/v1/community" +"/api/v1/community/list?sort=Hot" +"/api/v1/post/list?sort=Hot&type_=All" +) + +## now loop through the above array +for path in "${arr[@]}" +do + URL="$DOMAIN$path" + printf "\n\n\n" + echo "testing $URL" + curl --show-error --fail --silent "$URL" >/dev/null + ab -c 64 -t 10 "$URL" > out.abtest + grep "Server Hostname:" out.abtest + grep "Document Path:" out.abtest + grep "Requests per second" out.abtest + grep "(mean, across all concurrent requests)" out.abtest + grep "Transfer rate:" out.abtest + echo "---" +done + +rm *.abtest diff --git a/server/query_testing/generate_explain_reports.sh b/server/query_testing/generate_explain_reports.sh index 9ba9103..0dc06f6 100755 --- a/server/query_testing/generate_explain_reports.sh +++ b/server/query_testing/generate_explain_reports.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash +set -e # Do the views first diff --git a/server/src/api/site.rs b/server/src/api/site.rs index a5faf34..dfbd5ff 100644 --- a/server/src/api/site.rs +++ b/server/src/api/site.rs @@ -3,7 +3,7 @@ use diesel::PgConnection; use std::str::FromStr; #[derive(Serialize, Deserialize)] -pub struct ListCategories; +pub struct ListCategories {} #[derive(Serialize, Deserialize)] pub struct ListCategoriesResponse { @@ -72,7 +72,7 @@ pub struct EditSite { } #[derive(Serialize, Deserialize)] -pub struct GetSite; +pub struct GetSite {} #[derive(Serialize, Deserialize)] pub struct SiteResponse { diff --git a/ui/src/services/WebSocketService.ts b/ui/src/services/WebSocketService.ts index e72a287..b404219 100644 --- a/ui/src/services/WebSocketService.ts +++ b/ui/src/services/WebSocketService.ts @@ -116,7 +116,7 @@ export class WebSocketService { public listCategories() { this.subject.next( - this.wsSendWrapper(UserOperation.ListCategories, undefined) + this.wsSendWrapper(UserOperation.ListCategories, {}) ); } @@ -255,7 +255,7 @@ export class WebSocketService { } public getSite() { - this.subject.next(this.wsSendWrapper(UserOperation.GetSite, undefined)); + this.subject.next(this.wsSendWrapper(UserOperation.GetSite, {})); } public search(form: SearchForm) {