From cad81b527c30d334688ab410093bda9d8d64bb96 Mon Sep 17 00:00:00 2001 From: Andrew Woods Date: Mon, 4 Jul 2016 11:05:47 -0400 Subject: [PATCH] Add Test5 - create containers with RDF bodies (#8) * Add Test5 - create containers with RDF bodies Resolves: https://jira.duraspace.org/browse/FCREPO-1947 * Parameterize location of resource directory * i.e, parent directory of 'sample.ttl' --- .gitignore | 2 + README.md | 7 +++ fedora.jmx | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+) diff --git a/.gitignore b/.gitignore index b25c15b..745a2d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *~ +jmeter.log +log/ diff --git a/README.md b/README.md index f2c7899..e1577d2 100644 --- a/README.md +++ b/README.md @@ -78,3 +78,10 @@ jmeter -Dfedora_4_server= -Dfedora_4_context= - ```bash jmeter -Dfedora_4_server= -Dfedora_4_context= -Dcontainer_threads=1 -n -t /fedora.jmx ``` + +#### Test 5 - Number of containers - with RDF bodies + +* Run: +```bash +jmeter -Dfedora_4_server= -Dfedora_4_context= -Dresource_directory= -Dcontainer_rdf_threads=1 -n -t /fedora.jmx +``` diff --git a/fedora.jmx b/fedora.jmx index 9b65eb2..53500d3 100644 --- a/fedora.jmx +++ b/fedora.jmx @@ -17,6 +17,11 @@ ${__property(container_threads,,0)} = + + CONTAINER_RDF_THREADS + ${__property(container_rdf_threads,,0)} + = + BINARY_THREADS ${__property(binary_threads,,0)} @@ -72,6 +77,11 @@ ${__property(fedora_4_protocol,,http)} = + + RESOURCE_DIRECTORY + ${__property(resource_directory,,.)} + = + @@ -350,6 +360,131 @@ vars.put("post_body", RandomStringUtils.randomAscii(size)); + + stoptest + + false + -1 + + ${CONTAINER_RDF_THREADS} + ${RAMP_UP_PERIOD} + 1370357053000 + 1370357053000 + false + + + + + + + + + ${FEDORA_4_SERVER_NAME} + ${FEDORA_4_SERVER_PORT} + + + ${FEDORA_4_SERVER_PROTOCOL} + + + HttpClient4 + 4 + + + + javascript + + + vars.put('FEDORA_SERVER_CONTEXT', vars.get('FEDORA_4_SERVER_CONTEXT')); + + + + Execute on every 1000 requests + ${num_requests}%1000==0 + true + + + + + WorkBench + Fedora Profiling + Performance requests + + + + + Fail if there are more failures than MAX_ERRORS + long elapsed = SampleResult.getTime(); + +long threshold = Long.parseLong(vars.get("RESPONSE_THRESHOLD_MILLIS")); +int maxErrors = Integer.parseInt(vars.get("MAX_ERRORS")); + +if (vars.get("NUM_ERRORS") == null) { + vars.put("NUM_ERRORS", "0"); +} + +if (elapsed > threshold) { + + int failureCount = Integer.parseInt(vars.get("NUM_ERRORS")); + failureCount++; + + if (failureCount >= maxErrors) { + SampleResult.setSuccessful(false); + SampleResult.setResponseMessage(failureCount + " requests failed to finish in " + threshold + " ms"); + SampleResult.setStopTest(true); + log.error("Errored out!"); + + } else { + vars.put("NUM_ERRORS", String.valueOf(failureCount)); + log.warn("Error occurred. Elapsed millis: " + elapsed + ", num errors: " + failureCount); + } +} + + + false + + + + + + + + + + + + + utf-8 + ${FEDORA_4_SERVER_CONTEXT} + POST + false + false + false + false + HttpClient4 + + + + ${RESOURCE_DIRECTORY}/sample.ttl + + text/turtle + + + + false + + + + + 0 + 1000 + 1 + num_requests + + false + + + + false