From: Felix Date: Tue, 28 Jan 2020 15:50:40 +0000 (+0100) Subject: Add script to test http api, fix two api calls X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%24%7B%60data:application/static/%7B%60https:/%7BcommunityRSSUrl%28?a=commitdiff_plain;h=7b4bf68486ad46b70e761b88be4819d4fc044f91;p=lemmy.git Add script to test http api, fix two api calls --- diff --git a/server/query_testing/apache_bench_report.sh b/server/query_testing/apache_bench_report.sh index c22af730..62b3e863 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 00000000..8f8c65f1 --- /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 9ba91036..0dc06f65 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 a5faf34d..dfbd5ff0 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 e72a2871..b4042194 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) {