e2eproject/jemter.jmx
2020-11-03 12:10:26 +05:30

2083 lines
124 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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="devops 流水线列表" 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">true</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
<stringProp name="filename"></stringProp>
<stringProp name="parameters"></stringProp>
<boolProp name="resetInterpreter">false</boolProp>
<stringProp name="script">public static String getEnv(String env_name,String default_value){
String env=System.getenv(env_name);
if (env==null){
return default_value;
}else{
return env;
}
}
public static void setVar(String var_name,String var_value){
String tmp_value=vars.get(var_name);
if(tmp_value==null){
vars.put(var_name,var_value);
log.info(var_name+&quot;: &quot;+var_value);
}
}
String var_seted=vars.get(&quot;VAR_SETED&quot;);
if(var_seted==null){
String API_TYPE=getEnv(&quot;API_TYPE&quot;,&quot;https&quot;); // 访问集群的协议
setVar(&quot;API_TYPE&quot;,API_TYPE);
String API_IP=getEnv(&quot;API_IP&quot;,&quot;int.alauda.cn&quot;); // 集群地址
setVar(&quot;API_IP&quot;,API_IP);
String account=getEnv(&quot;ACCOUNT&quot;,&quot;admin@cpaas.io&quot;);
if(account.contains(&quot;/&quot;)){
String[] auth_account=account.split(&quot;/&quot;);
setVar(&quot;AUTH&quot;,auth_account[0]);
setVar(&quot;ACCOUNT&quot;,auth_account[1]);
}else{
setVar(&quot;AUTH&quot;,&quot;local&quot;);
setVar(&quot;ACCOUNT&quot;,account);
}
String password=getEnv(&quot;PASSWORD&quot;,&quot;password&quot;);
setVar(&quot;PASSWORD&quot;,password);
String PRO_NAME=getEnv(&quot;PRO_NAME&quot;,&quot;aa-liuzongyao&quot;); //项目名称
setVar(&quot;PRO_NAME&quot;,PRO_NAME);
String TOKEN=getEnv(&quot;TOKEN&quot;,&quot;eyJhbGciOiJSUzI1NiIsImtpZCI6IjRjNmQ2ZjA1YWExMjk4YjMwNjAxZDk4NDllMTlkMDQxN2VlNTdlZjcifQ.eyJpc3MiOiJodHRwczovL2ludC5hbGF1ZGEuY24vZGV4Iiwic3ViIjoiQ2lRd09HRTROamcwWWkxa1lqZzRMVFJpTnpNdE9UQmhPUzB6WTJReE5qWXhaalUwTmpZU0JXeHZZMkZzIiwiYXVkIjoiYWxhdWRhLWF1dGgiLCJleHAiOjE1ODEzODQ2OTksImlhdCI6MTU4MTI5ODI5OSwibm9uY2UiOiJhbGF1ZGEtY29uc29sZSIsImF0X2hhc2giOiJhbElrYjFiWW1MT1VTdXpMN1VSdXp3IiwiZW1haWwiOiJhZG1pbkBjcGFhcy5pbyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiYWRtaW4iLCJleHQiOnsiaXNfYWRtaW4iOnRydWUsImNvbm5faWQiOiJsb2NhbCJ9fQ.Dinen6jxPPiGPveOScgQfUzHiSplRdaERnQL__uYK0tqoOekWJTAt7l0D__g16tO7SUbRC4-DB8NYhvYC3lzD8QytxOB1vPxB-FZ66Nqq1GhmAcHUWTnHoq3Du1TNfrJsp4w7PwltWYZTrH9RTzMbJdyVa_5mcx1KTexwQfn56DVfaKCM2giv6iPQX4AOUwJHBE6mWXt1suGFA-Otod5chPQDMRuILdskf1IPKbo_xiP5Fg9h303pcEnOKm3ymYRWj5coqZtxfNWuHfps2iJonenWpsYIbeAFMSbgOaxVBgX9RhBNgNPlkmmsqXwbAfUcixZYsfdzHSrm47dFgVg8A&quot;);
setVar(&quot;TOKEN&quot;,TOKEN); // 访问集群的token信息
String JENKINS_NAME=getEnv(&quot;JENKINS_NAME&quot;,&quot;jenkins&quot;); // 集成jenkins的名称
setVar(&quot;JENKINS_NAME&quot;,JENKINS_NAME);
String JENKINS_SECRET_NAME=getEnv(&quot;JENKINS_SECRET_NAME&quot;,&quot;jenkins-backup-int&quot;); // jenkins的平台凭据名称
setVar(&quot;JENKINS_SECRET_NAME&quot;,JENKINS_SECRET_NAME);
String JENKINS_BIND_NAME=getEnv(&quot;JENKINS_BIND_NAME&quot;,&quot;jenkins&quot;); // 绑定jenkins到项目的绑定名称
setVar(&quot;JENKINS_BIND_NAME&quot;,JENKINS_BIND_NAME);
String JENKINS_IP=getEnv(&quot;JENKINS_IP&quot;,&quot;http://192.168.17.10:32001&quot;); // jenkins的地址信息
setVar(&quot;JENKINS_IP&quot;,JENKINS_IP);
String JENKINS_USERNAME=getEnv(&quot;JENKINS_USERNAME&quot;,&quot;admin&quot;); //jenkins的用户名
setVar(&quot;JENKINS_USERNAME&quot;,JENKINS_USERNAME);
String JENKINS_TOKEN=getEnv(&quot;JENKINS_TOKEN&quot;,&quot;119f1f3faa4cd110670ae86908715b62b2&quot;); //jenkins的token信息
setVar(&quot;JENKINS_TOKEN&quot;,JENKINS_TOKEN);
String GITLAB_NAME=getEnv(&quot;GITLAB_NAME&quot;,&quot;gitlab-staging&quot;); //集成jenkins的工具名称
setVar(&quot;GITLAB_NAME&quot;,GITLAB_NAME);
String GITLAB_SECRET_NAME=getEnv(&quot;GITLAB_SECRET_NAME&quot;,&quot;gitlab-staging&quot;); // gitlab的平台凭据名称
setVar(&quot;GITLAB_SECRET_NAME&quot;,GITLAB_SECRET_NAME);
String GITLAB_BIND_NAME=getEnv(&quot;GITLAB_BIND_NAME&quot;,&quot;gitlab-staging&quot;); // 绑定gitlab的绑定名称
setVar(&quot;GITLAB_BIND_NAME&quot;,GITLAB_BIND_NAME);
String GITLAB_IP=getEnv(&quot;GITLAB_IP&quot;,&quot;http://10.0.128.241:31101&quot;); // gitlab地址信息
setVar(&quot;GITLAB_IP&quot;,GITLAB_IP);
String GITLAB_USERNAME=getEnv(&quot;GITLAB_USERNAME&quot;,&quot;root&quot;); // 登陆gitlab的用户名
setVar(&quot;GITLAB_USERNAME&quot;,GITLAB_USERNAME);
String GITLAB_TOKEN=getEnv(&quot;GITLAB_TOKEN&quot;,&quot;4UKPXz-6AU9ZYr6ujKMH&quot;); // gitlab的token信息
setVar(&quot;GITLAB_TOKEN&quot;,GITLAB_TOKEN);
String GITLAB_ACCOUNT=getEnv(&quot;GITLAB_ACCOUNT&quot;,&quot;root&quot;); // gitlab组织信息 通常和用户名一样
setVar(&quot;GITLAB_ACCOUNT&quot;,GITLAB_ACCOUNT);
String GITLAB_REPO=getEnv(&quot;GITLAB_REPO&quot;,&quot;go-test-private&quot;); //代码仓库的名称
setVar(&quot;GITLAB_REPO&quot;,GITLAB_REPO);
String HARBOR_NAME=getEnv(&quot;HARBOR_NAME&quot;,&quot;harbor-staging&quot;); // habror的工具名称
setVar(&quot;HARBOR_NAME&quot;,HARBOR_NAME);
String HARBOR_SECRET_NAME=getEnv(&quot;HARBOR_SECRET_NAME&quot;,&quot;harbor-staging&quot;); // habror的平台凭据
setVar(&quot;HARBOR_SECRET_NAME&quot;,HARBOR_SECRET_NAME);
String HARBOR_BIND_NAME=getEnv(&quot;HARBOR_BIND_NAME&quot;,&quot;harbor-staging&quot;); //绑定habror的名称
setVar(&quot;HARBOR_BIND_NAME&quot;,HARBOR_BIND_NAME);
String HARBOR_IP=getEnv(&quot;HARBOR_IP&quot;,&quot;http://10.0.128.241:31104&quot;); //habor的地址
setVar(&quot;HARBOR_IP&quot;,HARBOR_IP);
String HARBOR_USERNAME=getEnv(&quot;HARBOR_USERNAME&quot;,&quot;admin&quot;); //harbor的用户名
setVar(&quot;HARBOR_USERNAME&quot;,HARBOR_USERNAME);
String HARBOR_PASSWORD=getEnv(&quot;HARBOR_PASSWORD&quot;,&quot;Harbor12345&quot;); //harbor的密码
setVar(&quot;HARBOR_PASSWORD&quot;,HARBOR_PASSWORD);
String HARBOR_PATH=getEnv(&quot;HARBOR_PATH&quot;,&quot;10.0.128.241:31104&quot;); // harbor的路径信息 是地址信息 但是不带http://
setVar(&quot;HARBOR_PATH&quot;,HARBOR_PATH);
String HARBOR_PROJECT=getEnv(&quot;HARBOR_PROJECT&quot;,&quot;e2e-automation&quot;); //habror对应的项目名称
setVar(&quot;HARBOR_PROJECT&quot;,HARBOR_PROJECT);
String HARBOR_REPO=getEnv(&quot;HARBOR_REPO&quot;,&quot;go&quot;); // habor里的镜像仓库名称
setVar(&quot;HARBOR_REPO&quot;,HARBOR_REPO);
String time_out=getEnv(&quot;time_out&quot;,&quot;300&quot;); // 超时次数
setVar(&quot;time_out&quot;,time_out);
String SLEEP=getEnv(&quot;SLEEP&quot;,&quot;10&quot;);
int b = Integer.parseInt(SLEEP);
int sleep = b*1000;
String ss = Integer.toString(sleep);
setVar(&quot;SLEEP&quot;,ss);
setVar(&quot;VAR_SETED&quot;,&quot;true&quot;);
}</stringProp>
</BeanShellPreProcessor>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值-proxy" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${API_IP}</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">${API_TYPE}</stringProp>
<stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.concurrentPool">6</stringProp>
<stringProp name="HTTPSampler.proxyHost">139.186.17.154</stringProp>
<stringProp name="HTTPSampler.proxyPort">52975</stringProp>
<stringProp name="HTTPSampler.proxyUser">alauda</stringProp>
<stringProp name="HTTPSampler.proxyPass">Ah#U4TSwnjERBU@E1KZN8</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</ConfigTestElement>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值1" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${API_IP}</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">${API_TYPE}</stringProp>
<stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.concurrentPool">6</stringProp>
<stringProp name="HTTPSampler.proxyHost">139.186.17.154</stringProp>
<stringProp name="HTTPSampler.proxyPort">52975</stringProp>
<stringProp name="HTTPSampler.proxyUser">alauda</stringProp>
<stringProp name="HTTPSampler.proxyPass">Ah#U4TSwnjERBU@E1KZN8</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</ConfigTestElement>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值2" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="用户定义的变量" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">int.alauda.cn</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.concurrentPool">6</stringProp>
<stringProp name="HTTPSampler.proxyHost">139.186.2.80</stringProp>
<stringProp name="HTTPSampler.proxyPort">37491</stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</ConfigTestElement>
<hashTree/>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Content-Type</stringProp>
<stringProp name="Header.value">application/json</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">authorization</stringProp>
<stringProp name="Header.value">Bearer ${TOKEN}</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" 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>
<longProp name="ThreadGroup.start_time">1550552654000</longProp>
<longProp name="ThreadGroup.end_time">1550552654000</longProp>
<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>
</SetupThreadGroup>
<hashTree>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="setup_login_getToken" enabled="false">
<boolProp name="TransactionController.parent">true</boolProp>
<boolProp name="TransactionController.includeTimers">false</boolProp>
</TransactionController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="setup_request-get auth url" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${API_IP}</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">console-acp/api/v1/token/login</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="true">
<stringProp name="BeanShellAssertion.query">import org.json.JSONObject;
if(!ResponseCode.matches(&quot;-?\\d+(\\.\\d+)?&quot;)){
SampleResult.setSuccessful(false);
}else{
SampleResult.setSuccessful(true);
if(ResponseCode.equals(&quot;200&quot;)){
String rspdata = new String(ResponseData);
JSONObject rsp = new JSONObject(rspdata);
String auth_url = rsp.getString(&quot;auth_url&quot;).replace(&quot;code&quot;, &quot;id_token&quot;);
vars.put(&quot;auth_url&quot;,auth_url);
}
}</stringProp>
<stringProp name="BeanShellAssertion.filename"></stringProp>
<stringProp name="BeanShellAssertion.parameters"></stringProp>
<boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
</BeanShellAssertion>
<hashTree/>
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="false">
<stringProp name="JSONPostProcessor.referenceNames">auth_url</stringProp>
<stringProp name="JSONPostProcessor.jsonPathExprs">$.auth_url</stringProp>
<stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
</JSONPostProcessor>
<hashTree/>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
<stringProp name="ConstantTimer.delay">5000</stringProp>
</ConstantTimer>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="setup_request-get req var for login after call auth url" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${API_IP}</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">${auth_url}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor-req" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">req</stringProp>
<stringProp name="RegexExtractor.regex">/dex/auth/${AUTH}\?req=(.+?)&quot;</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default"></stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
<stringProp name="Sample.scope">all</stringProp>
</RegexExtractor>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="setup_request-Post login using req, user, password" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="req" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${req}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">req</stringProp>
</elementProp>
<elementProp name="login" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${ACCOUNT}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">login</stringProp>
</elementProp>
<elementProp name="password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${PASSWORD}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain">${API_IP}</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/dex/auth/${AUTH}?req=${req}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</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="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8</stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">content-type</stringProp>
<stringProp name="Header.value">application/x-www-form-urlencoded</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor-code" enabled="true">
<stringProp name="RegexExtractor.useHeaders">URL</stringProp>
<stringProp name="RegexExtractor.refname">code</stringProp>
<stringProp name="RegexExtractor.regex">/\?code=(.+?)&amp;</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default"></stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
<stringProp name="Sample.scope">all</stringProp>
</RegexExtractor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor-id_token" enabled="true">
<stringProp name="RegexExtractor.useHeaders">URL</stringProp>
<stringProp name="RegexExtractor.refname">id_token</stringProp>
<stringProp name="RegexExtractor.regex">id_token=(.+?)&amp;</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default">-1</stringProp>
<stringProp name="RegexExtractor.match_number">0</stringProp>
</RegexExtractor>
<hashTree/>
</hashTree>
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="如果If控制器" enabled="true">
<stringProp name="IfController.condition">${__javaScript(&quot;${id_token}&quot;==&quot;-1&quot;,isOk)}</stringProp>
<boolProp name="IfController.evaluateAll">false</boolProp>
</IfController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="login-callback" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">${API_IP}</stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">console-acp/api/v1/token/callback?code=${code}&amp;state=alauda-console</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</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="Accept" elementType="Header">
<stringProp name="Header.name">Accept</stringProp>
<stringProp name="Header.value">application/json, text/plain, */* </stringProp>
</elementProp>
<elementProp name="User-Agent" elementType="Header">
<stringProp name="Header.name">User-Agent</stringProp>
<stringProp name="Header.value">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">accept-encoding</stringProp>
<stringProp name="Header.value">gzip, deflate, br</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">accept-language</stringProp>
<stringProp name="Header.value">zh-CN,zh;q=0.9,en;q=0.8</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">cache-control</stringProp>
<stringProp name="Header.value">no-cache</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">pragma</stringProp>
<stringProp name="Header.value">no-cache</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">authorization</stringProp>
<stringProp name="Header.value">Bearer undefined</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">referer</stringProp>
<stringProp name="Header.value">https://${BASE_URL}/console?code=${code}</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor-id_token" enabled="true">
<stringProp name="JSONPostProcessor.referenceNames">id_token</stringProp>
<stringProp name="JSONPostProcessor.jsonPathExprs">$.id_token</stringProp>
<stringProp name="JSONPostProcessor.match_numbers">0</stringProp>
</JSONPostProcessor>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
<BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="setup_init_test_case" enabled="true">
<stringProp name="BeanShellSampler.query">String cases=vars.get(&quot;RUN_CASES&quot;);
props.put(&quot;TOKEN&quot;,vars.get(&quot;TOKEN&quot;));
props.put(&quot;USERS&quot;,&quot;${__env(USERS,,2)}&quot;);
props.put(&quot;RUN_TIME&quot;,&quot;${__env(RUN_TIME,,60)}&quot;);
</stringProp>
<stringProp name="BeanShellSampler.filename"></stringProp>
<stringProp name="BeanShellSampler.parameters"></stringProp>
<boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
</BeanShellSampler>
<hashTree/>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="setup_clean" enabled="false">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">false</boolProp>
</TransactionController>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Content-Type</stringProp>
<stringProp name="Header.value">application/json</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">authorization</stringProp>
<stringProp name="Header.value">Bearer ${__P(TOKEN,)}</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Jenkins工具" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/jenkinses/${JENKINS_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"/>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Gitlab工具" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/codereposervice/${GITLAB_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"/>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Harbor工具" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/imageregistry/${HARBOR_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"/>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Jenkins平台凭据" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret/global-credentials/${JENKINS_SECRET_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"/>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Gitlab平台凭据" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret/global-credentials/${GITLAB_SECRET_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"/>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Harbor平台凭据" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret/global-credentials/${HARBOR_SECRET_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
<collectionProp name="Asserion.test_strings"/>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">true</boolProp>
<intProp name="Assertion.test_type">16</intProp>
</ResponseAssertion>
<hashTree/>
</hashTree>
</hashTree>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="setup create" enabled="true">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">false</boolProp>
</TransactionController>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Content-Type</stringProp>
<stringProp name="Header.value">application/json</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">authorization</stringProp>
<stringProp name="Header.value">Bearer ${__P(TOKEN,)}</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="create devops pipeline tools" enabled="false">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">true</boolProp>
</TransactionController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Jenkins工具" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${JENKINS_NAME}&quot;&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;http&quot;: {&#xd;
&quot;host&quot;: &quot;${JENKINS_IP}&quot;,&#xd;
&quot;accessUrl&quot;: &quot;${JENKINS_IP}&quot;&#xd;
},&#xd;
&quot;secret&quot;: {&#xd;
&quot;name&quot;: &quot;&quot;,&#xd;
&quot;namespace&quot;: &quot;&quot;&#xd;
}&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/jenkinses</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Gitlab工具" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_NAME}&quot;&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;http&quot;: {&#xd;
&quot;host&quot;: &quot;${GITLAB_IP}&quot;,&#xd;
&quot;accessUrl&quot;: &quot;${GITLAB_IP}&quot;&#xd;
},&#xd;
&quot;type&quot;: &quot;Gitlab&quot;,&#xd;
&quot;secret&quot;: {&#xd;
&quot;name&quot;: &quot;&quot;,&#xd;
&quot;namespace&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;public&quot;: false&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/codereposervice</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Harbor工具" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;apiVersion&quot;: &quot;devops.alauda.io/v1alpha1&quot;,&#xd;
&quot;kind&quot;: &quot;ImageRegistry&quot;,&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_NAME}&quot;&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;http&quot;: {&#xd;
&quot;host&quot;: &quot;${HARBOR_IP}&quot;,&#xd;
&quot;accessUrl&quot;: &quot;${HARBOR_IP}&quot;&#xd;
},&#xd;
&quot;type&quot;: &quot;Harbor&quot;,&#xd;
&quot;secret&quot;: {&#xd;
&quot;name&quot;: &quot;&quot;,&#xd;
&quot;namespace&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;public&quot;: false&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/imageregistry</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="binding project" enabled="false">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">true</boolProp>
</TransactionController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Jenkins平台凭据" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${JENKINS_SECRET_NAME}&quot;,&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/displayName&quot;: &quot;&quot;,&#xd;
&quot;devops.alauda.io/global&quot;: &quot;true&quot;&#xd;
},&#xd;
&quot;namespace&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;type&quot;: &quot;kubernetes.io/basic-auth&quot;,&#xd;
&quot;stringData&quot;: {&#xd;
&quot;username&quot;: &quot;${JENKINS_USERNAME}&quot;,&#xd;
&quot;password&quot;: &quot;${JENKINS_TOKEN}&quot;&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Gitlab平台凭据" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_SECRET_NAME}&quot;,&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/displayName&quot;: &quot;&quot;,&#xd;
&quot;devops.alauda.io/global&quot;: &quot;true&quot;&#xd;
},&#xd;
&quot;namespace&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;type&quot;: &quot;kubernetes.io/basic-auth&quot;,&#xd;
&quot;stringData&quot;: {&#xd;
&quot;username&quot;: &quot;${GITLAB_USERNAME}&quot;,&#xd;
&quot;password&quot;: &quot;${GITLAB_TOKEN}&quot;&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Harbor平台凭据" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_SECRET_NAME}&quot;,&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/displayName&quot;: &quot;&quot;,&#xd;
&quot;devops.alauda.io/global&quot;: &quot;true&quot;&#xd;
},&#xd;
&quot;namespace&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;type&quot;: &quot;kubernetes.io/basic-auth&quot;,&#xd;
&quot;stringData&quot;: {&#xd;
&quot;username&quot;: &quot;${HARBOR_USERNAME}&quot;,&#xd;
&quot;password&quot;: &quot;${HARBOR_PASSWORD}&quot;&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Harbor绑定" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;apiVersion&quot;: &quot;devops.alauda.io/v1alpha1&quot;,&#xd;
&quot;kind&quot;: &quot;ImageRegistryBinding&quot;,&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_BIND_NAME}&quot;,&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/description&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;labels&quot;: {&#xd;
&quot;imageRegistry&quot;: &quot;${HARBOR_NAME}&quot;&#xd;
}&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;imageRegistry&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_NAME}&quot;&#xd;
},&#xd;
&quot;secret&quot;: {&#xd;
&quot;namespace&quot;: &quot;global-credentials&quot;,&#xd;
&quot;name&quot;: &quot;${HARBOR_SECRET_NAME}&quot;,&#xd;
&quot;usernameKey&quot;: &quot;username&quot;,&#xd;
&quot;apiTokenKey&quot;: &quot;password&quot;&#xd;
}&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/imageregistrybinding/${PRO_NAME}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="分配Harbor到项目" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_BIND_NAME}&quot;,&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;labels&quot;: {&#xd;
&quot;alauda.io/project&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;imageRegistry&quot;: &quot;${HARBOR_NAME}&quot;,&#xd;
&quot;imageRegistryType&quot;: &quot;Harbor&quot;&#xd;
},&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/description&quot;: &quot;&quot;,&#xd;
&quot;alauda.io/secretType&quot;: &quot;kubernetes.io/basic-auth&quot;,&#xd;
&quot;alauda.io/toolAccessUrl&quot;: &quot;${HARBOR_IP}&quot;,&#xd;
&quot;alauda.io/toolItemKind&quot;: &quot;ImageRegistryBinding&quot;,&#xd;
&quot;alauda.io/toolItemType&quot;: &quot;Harbor&quot;&#xd;
},&#xd;
&quot;ownerReferences&quot;: [{&#xd;
&quot;apiVersion&quot;: &quot;devops.alauda.io/v1alpha1&quot;,&#xd;
&quot;kind&quot;: &quot;ImageRegistry&quot;,&#xd;
&quot;name&quot;: &quot;${HARBOR_NAME}&quot;,&#xd;
&quot;controller&quot;: true,&#xd;
&quot;blockOwnerDeletion&quot;: true&#xd;
}]&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;imageRegistry&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_NAME}&quot;&#xd;
},&#xd;
&quot;secret&quot;: {&#xd;
&quot;name&quot;: &quot;${HARBOR_SECRET_NAME}&quot;,&#xd;
&quot;namespace&quot;: &quot;global-credentials&quot;&#xd;
},&#xd;
&quot;repoInfo&quot;: {&#xd;
&quot;repositories&quot;: [&quot;/&quot;]&#xd;
}&#xd;
},&#xd;
&quot;kind&quot;: &quot;ImageRegistryBinding&quot;&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/imageregistrybinding/${PRO_NAME}/${HARBOR_BIND_NAME}</stringProp>
<stringProp name="HTTPSampler.method">PUT</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Gitlab绑定" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;kind&quot;: &quot;coderepobinding&quot;,&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_BIND_NAME}&quot;,&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;labels&quot;: {&#xd;
&quot;codeRepoService&quot;: &quot;${GITLAB_NAME}&quot;&#xd;
},&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/description&quot;: &quot;&quot;,&#xd;
&quot;alauda.io/secretType&quot;: &quot;kubernetes.io/basic-auth&quot;&#xd;
}&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;codeRepoService&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_NAME}&quot;&#xd;
},&#xd;
&quot;account&quot;: {&#xd;
&quot;secret&quot;: {&#xd;
&quot;namespace&quot;: &quot;global-credentials&quot;,&#xd;
&quot;name&quot;: &quot;${GITLAB_SECRET_NAME}&quot;&#xd;
},&#xd;
&quot;owners&quot;: null&#xd;
}&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/coderepobinding/${PRO_NAME}?redirectUrl=</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="分配Gitlab到项目" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_BIND_NAME}&quot;,&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;labels&quot;: {&#xd;
&quot;alauda.io/project&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;codeRepoService&quot;: &quot;${GITLAB_NAME}&quot;,&#xd;
&quot;codeRepoServicePublic&quot;: &quot;false&quot;,&#xd;
&quot;codeRepoServiceType&quot;: &quot;Gitlab&quot;&#xd;
},&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/description&quot;: &quot;&quot;,&#xd;
&quot;alauda.io/secretType&quot;: &quot;kubernetes.io/basic-auth&quot;,&#xd;
&quot;alauda.io/toolAccessUrl&quot;: &quot;${GITLAB_IP}&quot;,&#xd;
&quot;alauda.io/toolItemKind&quot;: &quot;CodeRepoBinding&quot;,&#xd;
&quot;alauda.io/toolItemType&quot;: &quot;Gitlab&quot;&#xd;
},&#xd;
&quot;ownerReferences&quot;: [{&#xd;
&quot;apiVersion&quot;: &quot;devops.alauda.io/v1alpha1&quot;,&#xd;
&quot;kind&quot;: &quot;CodeRepoService&quot;,&#xd;
&quot;name&quot;: &quot;${GITLAB_NAME}&quot;,&#xd;
&quot;controller&quot;: true,&#xd;
&quot;blockOwnerDeletion&quot;: true&#xd;
}]&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;codeRepoService&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_NAME}&quot;&#xd;
},&#xd;
&quot;account&quot;: {&#xd;
&quot;secret&quot;: {&#xd;
&quot;name&quot;: &quot;${GITLAB_SECRET_NAME}&quot;,&#xd;
&quot;namespace&quot;: &quot;global-credentials&quot;&#xd;
},&#xd;
&quot;owners&quot;: [{&#xd;
&quot;type&quot;: &quot;User&quot;,&#xd;
&quot;name&quot;: &quot;root&quot;,&#xd;
&quot;all&quot;: true,&#xd;
&quot;repositories&quot;: []&#xd;
}]&#xd;
}&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/coderepobinding/${PRO_NAME}/${GITLAB_BIND_NAME}?redirectUrl=</stringProp>
<stringProp name="HTTPSampler.method">PUT</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="创建Jenkins绑定" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;apiVersion&quot;: &quot;devops.alauda.io/v1alpha1&quot;,&#xd;
&quot;kind&quot;: &quot;JenkinsBinding&quot;,&#xd;
&quot;metadata&quot;: {&#xd;
&quot;name&quot;: &quot;${JENKINS_BIND_NAME}&quot;,&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/description&quot;: &quot;&quot;,&#xd;
&quot;alauda.io/product&quot;: &quot;Alauda DevOps&quot;&#xd;
},&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;jenkins&quot;: {&#xd;
&quot;name&quot;: &quot;${JENKINS_NAME}&quot;&#xd;
},&#xd;
&quot;account&quot;: {&#xd;
&quot;secret&quot;: {&#xd;
&quot;namespace&quot;: &quot;global-credentials&quot;,&#xd;
&quot;name&quot;: &quot;${JENKINS_SECRET_NAME}&quot;,&#xd;
&quot;usernameKey&quot;: &quot;username&quot;,&#xd;
&quot;apiTokenKey&quot;: &quot;password&quot;&#xd;
}&#xd;
}&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/jenkinsbinding/${PRO_NAME}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">${__P(USERS,)}</stringProp>
</LoopController>
<hashTree>
<CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="创建流水线的条数" enabled="true">
<stringProp name="CounterConfig.start">1</stringProp>
<stringProp name="CounterConfig.end">100</stringProp>
<stringProp name="CounterConfig.incr">1</stringProp>
<stringProp name="CounterConfig.name">index</stringProp>
<stringProp name="CounterConfig.format"></stringProp>
<boolProp name="CounterConfig.per_user">false</boolProp>
</CounterConfig>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="setup_add_pipelines" enabled="false">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;kind&quot;: &quot;Pipelineconfig&quot;,&#xd;
&quot;objectMeta&quot;: {&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/displayName&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;name&quot;: &quot;${PRO_NAME}-pipeline-${index}&quot;,&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;labels&quot;: {&#xd;
&quot;app&quot;: &quot;&quot;&#xd;
}&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;runPolicy&quot;: &quot;Serial&quot;,&#xd;
&quot;jenkinsBinding&quot;: {&#xd;
&quot;name&quot;: &quot;${JENKINS_BIND_NAME}&quot;&#xd;
},&#xd;
&quot;strategy&quot;: {&#xd;
&quot;jenkins&quot;: {&#xd;
&quot;jenkinsfile&quot;: &quot;&quot;,&#xd;
&quot;jenkinsfilePath&quot;: &quot;&quot;&#xd;
}&#xd;
},&#xd;
&quot;template&quot;: {&#xd;
&quot;pipelineTemplateRef&quot;: {&#xd;
&quot;kind&quot;: &quot;ClusterPipelineTemplate&quot;,&#xd;
&quot;name&quot;: &quot;GoLangBuilder&quot;&#xd;
},&#xd;
&quot;values&quot;: {&#xd;
&quot;PlatformCodeRepository&quot;: &quot;{\&quot;url\&quot;:\&quot;${GITLAB_IP}/${GITLAB_ACCOUNT}/${GITLAB_REPO}\&quot;,\&quot;credentialId\&quot;:\&quot;global-credentials-${GITLAB_SECRET_NAME}\&quot;,\&quot;kind\&quot;:\&quot;select\&quot;,\&quot;bindingRepositoryName\&quot;:\&quot;${GITLAB_NAME}-${GITLAB_ACCOUNT}-${GITLAB_REPO}\&quot;,\&quot;sourceType\&quot;:\&quot;GIT\&quot;}&quot;,&#xd;
&quot;Branch&quot;: &quot;master&quot;,&#xd;
&quot;RelativeDirectory&quot;: &quot;src&quot;,&#xd;
&quot;buildCommand&quot;: &quot;go build&quot;,&#xd;
&quot;UseSonarQube&quot;: &quot;false&quot;,&#xd;
&quot;CodeQualityBinding&quot;: &quot;{\&quot;namespace\&quot;:\&quot;${PRO_NAME}\&quot;,\&quot;name\&quot;:\&quot;\&quot;}&quot;,&#xd;
&quot;EnableBranchAnalysis&quot;: &quot;false&quot;,&#xd;
&quot;AnalysisParameters&quot;: &quot;sonar.sources=.\nsonar.sourceEncoding=UTF-8\n&quot;,&#xd;
&quot;FailedIfNotPassQualityGate&quot;: &quot;false&quot;,&#xd;
&quot;imageRepository&quot;: &quot;{\&quot;type\&quot;:\&quot;select\&quot;,\&quot;repositoryPath\&quot;:\&quot;${HARBOR_PATH}/${HARBOR_PROJECT}/${HARBOR_REPO}\&quot;,\&quot;tag\&quot;:\&quot;${PRO_NAME}-pipeline-${index}\&quot;,\&quot;secretName\&quot;:\&quot;dockercfg--${PRO_NAME}}--${HARBOR_BIND_NAME}\&quot;,\&quot;secretNamespace\&quot;:\&quot;${PRO_NAME}}\&quot;,\&quot;credentialId\&quot;:\&quot;${PRO_NAME}-dockercfg--${PRO_NAME}--${HARBOR_BIND_NAME}\&quot;}&quot;,&#xd;
&quot;context&quot;: &quot;.&quot;,&#xd;
&quot;buildArguments&quot;: &quot;&quot;,&#xd;
&quot;dockerfile&quot;: &quot;Dockerfile&quot;,&#xd;
&quot;retry&quot;: &quot;3&quot;,&#xd;
&quot;_pipeline_&quot;: &quot;{\&quot;agent\&quot;:{\&quot;labelMatcher\&quot;:\&quot;golang.*\&quot;,\&quot;label\&quot;:\&quot;golang\&quot;},\&quot;options\&quot;:{\&quot;raw\&quot;:\&quot;buildDiscarder(logRotator(numToKeepStr: &apos;200&apos;))\&quot;}}&quot;&#xd;
}&#xd;
},&#xd;
&quot;triggers&quot;: [{&#xd;
&quot;cron&quot;: {&#xd;
&quot;enabled&quot;: false,&#xd;
&quot;rule&quot;: &quot;&quot;,&#xd;
&quot;schedule&quot;: {&#xd;
&quot;weeks&quot;: [&quot;mon&quot;, &quot;tue&quot;, &quot;wed&quot;, &quot;thu&quot;, &quot;fri&quot;, &quot;sat&quot;, &quot;sun&quot;],&#xd;
&quot;times&quot;: [&quot;00:00&quot;]&#xd;
}&#xd;
},&#xd;
&quot;type&quot;: &quot;cron&quot;&#xd;
}]&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipelineconfig/${PRO_NAME}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="setup_add_pipelines" enabled="true">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{&#xd;
&quot;kind&quot;: &quot;Pipelineconfig&quot;,&#xd;
&quot;objectMeta&quot;: {&#xd;
&quot;annotations&quot;: {&#xd;
&quot;alauda.io/displayName&quot;: &quot;&quot;&#xd;
},&#xd;
&quot;name&quot;: &quot;${PRO_NAME}-pipeline-${index}&quot;,&#xd;
&quot;namespace&quot;: &quot;${PRO_NAME}&quot;,&#xd;
&quot;labels&quot;: {&#xd;
&quot;app&quot;: &quot;&quot;&#xd;
}&#xd;
},&#xd;
&quot;spec&quot;: {&#xd;
&quot;runPolicy&quot;: &quot;Serial&quot;,&#xd;
&quot;jenkinsBinding&quot;: {&#xd;
&quot;name&quot;: &quot;${JENKINS_BIND_NAME}&quot;&#xd;
},&#xd;
&quot;source&quot;: {&#xd;
&quot;sourceType&quot;: &quot;GIT&quot;,&#xd;
&quot;git&quot;: {&#xd;
&quot;uri&quot;: &quot;http://10.0.128.241:31101/root/go-test-public.git&quot;,&#xd;
&quot;ref&quot;: &quot;master&quot;&#xd;
},&#xd;
&quot;secret&quot;: null&#xd;
},&#xd;
&quot;strategy&quot;: {&#xd;
&quot;jenkins&quot;: {&#xd;
&quot;jenkinsfile&quot;: &quot;&quot;,&#xd;
&quot;jenkinsfilePath&quot;: &quot;Jenkinsfile&quot;&#xd;
}&#xd;
},&#xd;
&quot;triggers&quot;: [{&#xd;
&quot;cron&quot;: {&#xd;
&quot;enabled&quot;: false,&#xd;
&quot;rule&quot;: &quot;&quot;,&#xd;
&quot;schedule&quot;: {&#xd;
&quot;weeks&quot;: [&quot;mon&quot;, &quot;tue&quot;, &quot;wed&quot;, &quot;thu&quot;, &quot;fri&quot;, &quot;sat&quot;, &quot;sun&quot;],&#xd;
&quot;times&quot;: [&quot;00:00&quot;]&#xd;
}&#xd;
},&#xd;
&quot;type&quot;: &quot;cron&quot;&#xd;
}]&#xd;
}&#xd;
}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipelineconfig/${PRO_NAME}</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="首次获取流水线执行状态" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipelineconfig/${PRO_NAME}/${PRO_NAME}-pipeline-${index}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
<stringProp name="JSONPostProcessor.referenceNames">status</stringProp>
<stringProp name="JSONPostProcessor.jsonPathExprs">$.status.phase</stringProp>
<stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
<boolProp name="JSONPostProcessor.compute_concat">true</boolProp>
</JSONPostProcessor>
<hashTree/>
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 PostProcessor" enabled="true">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="cacheKey">true</stringProp>
<stringProp name="script">vars.put(&apos;get_status_times&apos;,&apos;0&apos;);</stringProp>
</JSR223PostProcessor>
<hashTree/>
</hashTree>
<WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="false">
<stringProp name="WhileController.condition">${__javaScript(&quot;${status}&quot; != &quot;Ready&quot; &amp;&amp; ${get_status_times} &lt; ${time_out})} </stringProp>
</WhileController>
<hashTree>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
<stringProp name="ConstantTimer.delay">2000</stringProp>
</ConstantTimer>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="循环请求流水线执行结果" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipelineconfig/${PRO_NAME}/${PRO_NAME}-pipeline-${index}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
<stringProp name="JSONPostProcessor.referenceNames">status</stringProp>
<stringProp name="JSONPostProcessor.jsonPathExprs">$.status.phase</stringProp>
<stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
<boolProp name="JSONPostProcessor.compute_concat">true</boolProp>
</JSONPostProcessor>
<hashTree/>
<BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true">
<boolProp name="resetInterpreter">false</boolProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="script">Integer get_status_times = Integer.parseInt(vars.get(&quot;get_status_times&quot;));
get_status_times+=1;
vars.put(&quot;get_status_times&quot;,get_status_times.toString());</stringProp>
</BeanShellPostProcessor>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
<TestAction guiclass="TestActionGui" testclass="TestAction" testname="Test Action" enabled="false">
<intProp name="ActionProcessor.action">1</intProp>
<intProp name="ActionProcessor.target">0</intProp>
<stringProp name="ActionProcessor.duration">6000</stringProp>
</TestAction>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="测试用例" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">startnextloop</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">2</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">${__P(USERS,)}</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration">${__P(RUN_TIME,)}</stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Content-Type</stringProp>
<stringProp name="Header.value">application/json</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">authorization</stringProp>
<stringProp name="Header.value">Bearer ${__P(TOKEN,)}</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="计数器" enabled="true">
<stringProp name="CounterConfig.start">1</stringProp>
<stringProp name="CounterConfig.end">${__P(USERS,)}</stringProp>
<stringProp name="CounterConfig.incr">1</stringProp>
<stringProp name="CounterConfig.name">number</stringProp>
<stringProp name="CounterConfig.format"></stringProp>
<boolProp name="CounterConfig.per_user">false</boolProp>
</CounterConfig>
<hashTree/>
<TestAction guiclass="TestActionGui" testclass="TestAction" testname="Test Action" enabled="true">
<intProp name="ActionProcessor.action">1</intProp>
<intProp name="ActionProcessor.target">0</intProp>
<stringProp name="ActionProcessor.duration">${SLEEP}</stringProp>
</TestAction>
<hashTree/>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="L3_execute_pipelines" enabled="true">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">true</boolProp>
</TransactionController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="${__P(USERS,)}条流水线同时执行" enabled="true">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipelineconfig/${PRO_NAME}/${PRO_NAME}-pipeline-${number}/trigger</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="false">
<collectionProp name="Asserion.test_strings">
<stringProp name="49586">200</stringProp>
</collectionProp>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSR223 Assertion" enabled="true">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="cacheKey">true</stringProp>
<stringProp name="script">import org.json.JSONObject;
import org.json.JSONArray;
import java.util.ArrayList;
String ResponseCode = SampleResult.getResponseCode();
if(ResponseCode.equals(&quot;200&quot;)){
byte[] ResponseData = SampleResult.getResponseData();
String rspdata = new String(ResponseData);
JSONObject jsb = new JSONObject(rspdata);
String pipeline_name = jsb.getJSONObject(&quot;metadata&quot;).getString(&quot;name&quot;);
vars.put(&quot;pipeline_name&quot;, pipeline_name);
}else{
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage(&quot;exec pipeline fail&quot;);
}</stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="首次获取流水线执行状态" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipeline/${PRO_NAME}/${pipeline_name}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
<stringProp name="JSONPostProcessor.referenceNames">status</stringProp>
<stringProp name="JSONPostProcessor.jsonPathExprs">$.status.phase</stringProp>
<stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
<boolProp name="JSONPostProcessor.compute_concat">true</boolProp>
</JSONPostProcessor>
<hashTree/>
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 PostProcessor" enabled="true">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="cacheKey">true</stringProp>
<stringProp name="script">vars.put(&apos;get_status_times&apos;,&apos;0&apos;);</stringProp>
</JSR223PostProcessor>
<hashTree/>
</hashTree>
<WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true">
<stringProp name="WhileController.condition">${__javaScript(&quot;${status}&quot; != &quot;Complete&quot; &amp;&amp; &quot;${status}&quot; != &quot;Failed&quot; &amp;&amp; ${get_status_times} &lt; ${time_out})} </stringProp>
</WhileController>
<hashTree>
<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
<stringProp name="ConstantTimer.delay">2000</stringProp>
</ConstantTimer>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="循环请求流水线执行结果" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipeline/${PRO_NAME}/${pipeline_name}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSONPostProcessor guiclass="JSONPostProcessorGui" testclass="JSONPostProcessor" testname="JSON Extractor" enabled="true">
<stringProp name="JSONPostProcessor.referenceNames">status</stringProp>
<stringProp name="JSONPostProcessor.jsonPathExprs">$.status.phase</stringProp>
<stringProp name="JSONPostProcessor.match_numbers">1</stringProp>
<boolProp name="JSONPostProcessor.compute_concat">true</boolProp>
</JSONPostProcessor>
<hashTree/>
<BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true">
<boolProp name="resetInterpreter">false</boolProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="script">Integer get_status_times = Integer.parseInt(vars.get(&quot;get_status_times&quot;));
get_status_times+=1;
vars.put(&quot;get_status_times&quot;,get_status_times.toString());</stringProp>
</BeanShellPostProcessor>
<hashTree/>
</hashTree>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="确认流水线执行成功" enabled="false">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipeline/${PRO_NAME}/${pipeline_name}</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON Assertion" enabled="true">
<stringProp name="JSON_PATH">$.status.phase</stringProp>
<stringProp name="EXPECTED_VALUE">Complete</stringProp>
<boolProp name="JSONVALIDATION">true</boolProp>
<boolProp name="EXPECT_NULL">false</boolProp>
<boolProp name="INVERT">false</boolProp>
<boolProp name="ISREGEX">true</boolProp>
</JSONPathAssertion>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
<PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="false">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" 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>
</PostThreadGroup>
<hashTree>
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="setup_clean" enabled="false">
<boolProp name="TransactionController.includeTimers">false</boolProp>
<boolProp name="TransactionController.parent">false</boolProp>
</TransactionController>
<hashTree>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
<collectionProp name="HeaderManager.headers">
<elementProp name="" elementType="Header">
<stringProp name="Header.name">Content-Type</stringProp>
<stringProp name="Header.value">application/json</stringProp>
</elementProp>
<elementProp name="" elementType="Header">
<stringProp name="Header.name">authorization</stringProp>
<stringProp name="Header.value">Bearer ${__P(TOKEN,)}</stringProp>
</elementProp>
</collectionProp>
</HeaderManager>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Jenkins工具" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/jenkinses/${JENKINS_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Gitlab工具" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/codereposervice/${GITLAB_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Harbor工具" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/imageregistry/${HARBOR_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Jenkins平台凭据" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret/global-credentials/${JENKINS_SECRET_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Gitlab平台凭据" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret/global-credentials/${GITLAB_SECRET_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="删除Harbor平台凭据" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/secret/global-credentials/${HARBOR_SECRET_NAME}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">${__env(USERS,,2)}</stringProp>
</LoopController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="teardown_delete_pipelines" enabled="true">
<boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">{}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/devops/api/v1/pipelineconfig/${PRO_NAME}/${PRO_NAME}-pipeline-${number}</stringProp>
<stringProp name="HTTPSampler.method">DELETE</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree>
<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="响应断言" enabled="false">
<collectionProp name="Asserion.test_strings">
<stringProp name="49586">200</stringProp>
</collectionProp>
<stringProp name="Assertion.custom_message"></stringProp>
<stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
<boolProp name="Assertion.assume_success">false</boolProp>
<intProp name="Assertion.test_type">8</intProp>
</ResponseAssertion>
<hashTree/>
<JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="JSR223 Assertion" enabled="false">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="cacheKey">true</stringProp>
<stringProp name="script">import org.json.JSONObject;
import org.json.JSONArray;
import java.util.ArrayList;
String ResponseCode = SampleResult.getResponseCode();
if(ResponseCode.equals(&quot;200&quot;)){
byte[] ResponseData = SampleResult.getResponseData();
String rspdata = new String(ResponseData);
JSONObject jsb = new JSONObject(rspdata);
String pipeline_name = jsb.getJSONObject(&quot;metadata&quot;).getString(&quot;name&quot;);
vars.put(&quot;pipeline_name&quot;, pipeline_name);
}else{
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage(&quot;exec pipeline fail&quot;);
}</stringProp>
</JSR223Assertion>
<hashTree/>
</hashTree>
<CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="删除流水线的条数" enabled="true">
<stringProp name="CounterConfig.start">1</stringProp>
<stringProp name="CounterConfig.end">${__P(USERS,)}</stringProp>
<stringProp name="CounterConfig.incr">1</stringProp>
<stringProp name="CounterConfig.name">number</stringProp>
<stringProp name="CounterConfig.format"></stringProp>
<boolProp name="CounterConfig.per_user">false</boolProp>
</CounterConfig>
<hashTree/>
</hashTree>
</hashTree>
<ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="聚合报告" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="察看结果树" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>true</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<sentBytes>true</sentBytes>
<threadCounts>true</threadCounts>
<idleTime>true</idleTime>
<connectTime>true</connectTime>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
</jmeterTestPlan>