Skip to content

Instantly share code, notes, and snippets.

@hieunt79
Last active November 10, 2020 07:03
Show Gist options
  • Save hieunt79/27075a05dbaff2804480baac8984087c to your computer and use it in GitHub Desktop.
Save hieunt79/27075a05dbaff2804480baac8984087c to your computer and use it in GitHub Desktop.
Jmeter for delay time
#!/bin/bash
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
DELAY_FOLDER="/delay"
JMETER_BIN_DIR="$DELAY_FOLDER/jmeter/bin"
current=`date "+%s"`
# measure origin test
$JMETER_BIN_DIR/jmeter --nongui --testfile $DELAY_FOLDER/test-plans/origin/test.jmx --logfile $DELAY_FOLDER/test-results/origin/$current-sample.csv > /dev/null &
process_id=$!
/bin/sleep 5s
# measure waf delay
$JMETER_BIN_DIR/jmeter --nongui --testfile $DELAY_FOLDER/test-plans/waf/test.jmx --logfile $DELAY_FOLDER/test-results/waf/$current-sample.csv > /dev/null &
wait $process_id
wait $!
cp $DELAY_FOLDER/test-results/origin/$current-sample.csv /path/to/desire_folder
cp $DELAY_FOLDER/test-results/waf/$current-sample.csv /path/to/desire_folder
#!/bin/bash
#install
# create folder $DELAY_FOLDER
#export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
#export JAVA_HOME="/usr/bin/java"
DELAY_FOLDER="/delay-results"
DOMAIN="cammy.dongnai.gov.vn"
JMETER_BIN_DIR="/root/jmeter/bin"
sleep 30s
current=`date "+%s"`
# measure origin test
$JMETER_BIN_DIR/jmeter --nongui --testfile $DELAY_FOLDER/test-plans/$DOMAIN/ori-$DOMAIN.jmx --logfile $DELAY_FOLDER/test-results/$DOMAIN/$current-ori-$DOMAIN.csv > /dev/null &
process_id=$!
/bin/sleep 5s
# measure waf delay
$JMETER_BIN_DIR/jmeter --nongui --testfile $DELAY_FOLDER/test-plans/$DOMAIN/waf-$DOMAIN.jmx --logfile $DELAY_FOLDER/test-results/$DOMAIN/$current-waf-$DOMAIN.csv > /dev/null &
wait $process_id
wait $!
#cp $DELAY_FOLDER/test-results/origin/$current-sample.csv /path/to/desire_folder
#cp $DELAY_FOLDER/test-results/waf/$current-sample.csv /path/to/desire_folder
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.2.1">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
<hashTree>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="Transaction Controller" enabled="true">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">false</boolProp>
</TransactionController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="test" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">125.212.138.21</stringProp>
<stringProp name="HTTPSampler.port">443</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">true</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
<boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
<boolProp name="HTTPSampler.image_parser">true</boolProp>
<boolProp name="HTTPSampler.concurrentDwn">true</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Host</stringProp>
<stringProp name="Header.value">cyberintel.io</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
<collectionProp name="CookieManager.cookies">
<elementProp name="sample1" elementType="Cookie" testname="sample1">
<stringProp name="Cookie.value">sample-value</stringProp>
<stringProp name="Cookie.domain">sample-domain.com</stringProp>
<stringProp name="Cookie.path">/</stringProp>
<boolProp name="Cookie.secure">false</boolProp>
<longProp name="Cookie.expires">0</longProp>
<boolProp name="Cookie.path_specified">true</boolProp>
<boolProp name="Cookie.domain_specified">true</boolProp>
</elementProp>
</collectionProp>
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
<boolProp name="CookieManager.controlledByThreadGroup">false</boolProp>
</CookieManager>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment