2083 lines
124 KiB
XML
2083 lines
124 KiB
XML
<?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+": "+var_value);
|
||
}
|
||
}
|
||
|
||
String var_seted=vars.get("VAR_SETED");
|
||
if(var_seted==null){
|
||
String API_TYPE=getEnv("API_TYPE","https"); // 访问集群的协议
|
||
setVar("API_TYPE",API_TYPE);
|
||
|
||
String API_IP=getEnv("API_IP","int.alauda.cn"); // 集群地址
|
||
setVar("API_IP",API_IP);
|
||
|
||
String account=getEnv("ACCOUNT","admin@cpaas.io");
|
||
if(account.contains("/")){
|
||
String[] auth_account=account.split("/");
|
||
setVar("AUTH",auth_account[0]);
|
||
setVar("ACCOUNT",auth_account[1]);
|
||
}else{
|
||
setVar("AUTH","local");
|
||
setVar("ACCOUNT",account);
|
||
}
|
||
|
||
String password=getEnv("PASSWORD","password");
|
||
setVar("PASSWORD",password);
|
||
|
||
String PRO_NAME=getEnv("PRO_NAME","aa-liuzongyao"); //项目名称
|
||
setVar("PRO_NAME",PRO_NAME);
|
||
|
||
String TOKEN=getEnv("TOKEN","eyJhbGciOiJSUzI1NiIsImtpZCI6IjRjNmQ2ZjA1YWExMjk4YjMwNjAxZDk4NDllMTlkMDQxN2VlNTdlZjcifQ.eyJpc3MiOiJodHRwczovL2ludC5hbGF1ZGEuY24vZGV4Iiwic3ViIjoiQ2lRd09HRTROamcwWWkxa1lqZzRMVFJpTnpNdE9UQmhPUzB6WTJReE5qWXhaalUwTmpZU0JXeHZZMkZzIiwiYXVkIjoiYWxhdWRhLWF1dGgiLCJleHAiOjE1ODEzODQ2OTksImlhdCI6MTU4MTI5ODI5OSwibm9uY2UiOiJhbGF1ZGEtY29uc29sZSIsImF0X2hhc2giOiJhbElrYjFiWW1MT1VTdXpMN1VSdXp3IiwiZW1haWwiOiJhZG1pbkBjcGFhcy5pbyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiYWRtaW4iLCJleHQiOnsiaXNfYWRtaW4iOnRydWUsImNvbm5faWQiOiJsb2NhbCJ9fQ.Dinen6jxPPiGPveOScgQfUzHiSplRdaERnQL__uYK0tqoOekWJTAt7l0D__g16tO7SUbRC4-DB8NYhvYC3lzD8QytxOB1vPxB-FZ66Nqq1GhmAcHUWTnHoq3Du1TNfrJsp4w7PwltWYZTrH9RTzMbJdyVa_5mcx1KTexwQfn56DVfaKCM2giv6iPQX4AOUwJHBE6mWXt1suGFA-Otod5chPQDMRuILdskf1IPKbo_xiP5Fg9h303pcEnOKm3ymYRWj5coqZtxfNWuHfps2iJonenWpsYIbeAFMSbgOaxVBgX9RhBNgNPlkmmsqXwbAfUcixZYsfdzHSrm47dFgVg8A");
|
||
setVar("TOKEN",TOKEN); // 访问集群的token信息
|
||
|
||
String JENKINS_NAME=getEnv("JENKINS_NAME","jenkins"); // 集成jenkins的名称
|
||
setVar("JENKINS_NAME",JENKINS_NAME);
|
||
String JENKINS_SECRET_NAME=getEnv("JENKINS_SECRET_NAME","jenkins-backup-int"); // jenkins的平台凭据名称
|
||
setVar("JENKINS_SECRET_NAME",JENKINS_SECRET_NAME);
|
||
String JENKINS_BIND_NAME=getEnv("JENKINS_BIND_NAME","jenkins"); // 绑定jenkins到项目的绑定名称
|
||
setVar("JENKINS_BIND_NAME",JENKINS_BIND_NAME);
|
||
String JENKINS_IP=getEnv("JENKINS_IP","http://192.168.17.10:32001"); // jenkins的地址信息
|
||
setVar("JENKINS_IP",JENKINS_IP);
|
||
String JENKINS_USERNAME=getEnv("JENKINS_USERNAME","admin"); //jenkins的用户名
|
||
setVar("JENKINS_USERNAME",JENKINS_USERNAME);
|
||
String JENKINS_TOKEN=getEnv("JENKINS_TOKEN","119f1f3faa4cd110670ae86908715b62b2"); //jenkins的token信息
|
||
setVar("JENKINS_TOKEN",JENKINS_TOKEN);
|
||
|
||
String GITLAB_NAME=getEnv("GITLAB_NAME","gitlab-staging"); //集成jenkins的工具名称
|
||
setVar("GITLAB_NAME",GITLAB_NAME);
|
||
String GITLAB_SECRET_NAME=getEnv("GITLAB_SECRET_NAME","gitlab-staging"); // gitlab的平台凭据名称
|
||
setVar("GITLAB_SECRET_NAME",GITLAB_SECRET_NAME);
|
||
String GITLAB_BIND_NAME=getEnv("GITLAB_BIND_NAME","gitlab-staging"); // 绑定gitlab的绑定名称
|
||
setVar("GITLAB_BIND_NAME",GITLAB_BIND_NAME);
|
||
String GITLAB_IP=getEnv("GITLAB_IP","http://10.0.128.241:31101"); // gitlab地址信息
|
||
setVar("GITLAB_IP",GITLAB_IP);
|
||
String GITLAB_USERNAME=getEnv("GITLAB_USERNAME","root"); // 登陆gitlab的用户名
|
||
setVar("GITLAB_USERNAME",GITLAB_USERNAME);
|
||
String GITLAB_TOKEN=getEnv("GITLAB_TOKEN","4UKPXz-6AU9ZYr6ujKMH"); // gitlab的token信息
|
||
setVar("GITLAB_TOKEN",GITLAB_TOKEN);
|
||
String GITLAB_ACCOUNT=getEnv("GITLAB_ACCOUNT","root"); // gitlab组织信息 通常和用户名一样
|
||
setVar("GITLAB_ACCOUNT",GITLAB_ACCOUNT);
|
||
String GITLAB_REPO=getEnv("GITLAB_REPO","go-test-private"); //代码仓库的名称
|
||
setVar("GITLAB_REPO",GITLAB_REPO);
|
||
|
||
|
||
String HARBOR_NAME=getEnv("HARBOR_NAME","harbor-staging"); // habror的工具名称
|
||
setVar("HARBOR_NAME",HARBOR_NAME);
|
||
String HARBOR_SECRET_NAME=getEnv("HARBOR_SECRET_NAME","harbor-staging"); // habror的平台凭据
|
||
setVar("HARBOR_SECRET_NAME",HARBOR_SECRET_NAME);
|
||
String HARBOR_BIND_NAME=getEnv("HARBOR_BIND_NAME","harbor-staging"); //绑定habror的名称
|
||
setVar("HARBOR_BIND_NAME",HARBOR_BIND_NAME);
|
||
String HARBOR_IP=getEnv("HARBOR_IP","http://10.0.128.241:31104"); //habor的地址
|
||
setVar("HARBOR_IP",HARBOR_IP);
|
||
String HARBOR_USERNAME=getEnv("HARBOR_USERNAME","admin"); //harbor的用户名
|
||
setVar("HARBOR_USERNAME",HARBOR_USERNAME);
|
||
String HARBOR_PASSWORD=getEnv("HARBOR_PASSWORD","Harbor12345"); //harbor的密码
|
||
setVar("HARBOR_PASSWORD",HARBOR_PASSWORD);
|
||
String HARBOR_PATH=getEnv("HARBOR_PATH","10.0.128.241:31104"); // harbor的路径信息 是地址信息 但是不带http://
|
||
setVar("HARBOR_PATH",HARBOR_PATH);
|
||
String HARBOR_PROJECT=getEnv("HARBOR_PROJECT","e2e-automation"); //habror对应的项目名称
|
||
setVar("HARBOR_PROJECT",HARBOR_PROJECT);
|
||
String HARBOR_REPO=getEnv("HARBOR_REPO","go"); // habor里的镜像仓库名称
|
||
setVar("HARBOR_REPO",HARBOR_REPO);
|
||
|
||
String time_out=getEnv("time_out","300"); // 超时次数
|
||
setVar("time_out",time_out);
|
||
|
||
String SLEEP=getEnv("SLEEP","10");
|
||
int b = Integer.parseInt(SLEEP);
|
||
int sleep = b*1000;
|
||
String ss = Integer.toString(sleep);
|
||
setVar("SLEEP",ss);
|
||
|
||
setVar("VAR_SETED","true");
|
||
|
||
}</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("-?\\d+(\\.\\d+)?")){
|
||
SampleResult.setSuccessful(false);
|
||
}else{
|
||
SampleResult.setSuccessful(true);
|
||
if(ResponseCode.equals("200")){
|
||
String rspdata = new String(ResponseData);
|
||
JSONObject rsp = new JSONObject(rspdata);
|
||
String auth_url = rsp.getString("auth_url").replace("code", "id_token");
|
||
vars.put("auth_url",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=(.+?)"</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=(.+?)&</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=(.+?)&</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("${id_token}"=="-1",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}&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("RUN_CASES");
|
||
props.put("TOKEN",vars.get("TOKEN"));
|
||
props.put("USERS","${__env(USERS,,2)}");
|
||
props.put("RUN_TIME","${__env(RUN_TIME,,60)}");
|
||
|
||
</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">{
|
||
"metadata": {
|
||
"name": "${JENKINS_NAME}"
|
||
},
|
||
"spec": {
|
||
"http": {
|
||
"host": "${JENKINS_IP}",
|
||
"accessUrl": "${JENKINS_IP}"
|
||
},
|
||
"secret": {
|
||
"name": "",
|
||
"namespace": ""
|
||
}
|
||
}
|
||
}</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">{
|
||
"metadata": {
|
||
"name": "${GITLAB_NAME}"
|
||
},
|
||
"spec": {
|
||
"http": {
|
||
"host": "${GITLAB_IP}",
|
||
"accessUrl": "${GITLAB_IP}"
|
||
},
|
||
"type": "Gitlab",
|
||
"secret": {
|
||
"name": "",
|
||
"namespace": ""
|
||
},
|
||
"public": false
|
||
}
|
||
}</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">{
|
||
"apiVersion": "devops.alauda.io/v1alpha1",
|
||
"kind": "ImageRegistry",
|
||
"metadata": {
|
||
"name": "${HARBOR_NAME}"
|
||
},
|
||
"spec": {
|
||
"http": {
|
||
"host": "${HARBOR_IP}",
|
||
"accessUrl": "${HARBOR_IP}"
|
||
},
|
||
"type": "Harbor",
|
||
"secret": {
|
||
"name": "",
|
||
"namespace": ""
|
||
},
|
||
"public": false
|
||
}
|
||
}</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">{
|
||
"metadata": {
|
||
"name": "${JENKINS_SECRET_NAME}",
|
||
"annotations": {
|
||
"alauda.io/displayName": "",
|
||
"devops.alauda.io/global": "true"
|
||
},
|
||
"namespace": ""
|
||
},
|
||
"type": "kubernetes.io/basic-auth",
|
||
"stringData": {
|
||
"username": "${JENKINS_USERNAME}",
|
||
"password": "${JENKINS_TOKEN}"
|
||
}
|
||
}</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">{
|
||
"metadata": {
|
||
"name": "${GITLAB_SECRET_NAME}",
|
||
"annotations": {
|
||
"alauda.io/displayName": "",
|
||
"devops.alauda.io/global": "true"
|
||
},
|
||
"namespace": ""
|
||
},
|
||
"type": "kubernetes.io/basic-auth",
|
||
"stringData": {
|
||
"username": "${GITLAB_USERNAME}",
|
||
"password": "${GITLAB_TOKEN}"
|
||
}
|
||
}</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">{
|
||
"metadata": {
|
||
"name": "${HARBOR_SECRET_NAME}",
|
||
"annotations": {
|
||
"alauda.io/displayName": "",
|
||
"devops.alauda.io/global": "true"
|
||
},
|
||
"namespace": ""
|
||
},
|
||
"type": "kubernetes.io/basic-auth",
|
||
"stringData": {
|
||
"username": "${HARBOR_USERNAME}",
|
||
"password": "${HARBOR_PASSWORD}"
|
||
}
|
||
}</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">{
|
||
"apiVersion": "devops.alauda.io/v1alpha1",
|
||
"kind": "ImageRegistryBinding",
|
||
"metadata": {
|
||
"name": "${HARBOR_BIND_NAME}",
|
||
"namespace": "${PRO_NAME}",
|
||
"annotations": {
|
||
"alauda.io/description": ""
|
||
},
|
||
"labels": {
|
||
"imageRegistry": "${HARBOR_NAME}"
|
||
}
|
||
},
|
||
"spec": {
|
||
"imageRegistry": {
|
||
"name": "${HARBOR_NAME}"
|
||
},
|
||
"secret": {
|
||
"namespace": "global-credentials",
|
||
"name": "${HARBOR_SECRET_NAME}",
|
||
"usernameKey": "username",
|
||
"apiTokenKey": "password"
|
||
}
|
||
}
|
||
}</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">{
|
||
"metadata": {
|
||
"name": "${HARBOR_BIND_NAME}",
|
||
"namespace": "${PRO_NAME}",
|
||
"labels": {
|
||
"alauda.io/project": "${PRO_NAME}",
|
||
"imageRegistry": "${HARBOR_NAME}",
|
||
"imageRegistryType": "Harbor"
|
||
},
|
||
"annotations": {
|
||
"alauda.io/description": "",
|
||
"alauda.io/secretType": "kubernetes.io/basic-auth",
|
||
"alauda.io/toolAccessUrl": "${HARBOR_IP}",
|
||
"alauda.io/toolItemKind": "ImageRegistryBinding",
|
||
"alauda.io/toolItemType": "Harbor"
|
||
},
|
||
"ownerReferences": [{
|
||
"apiVersion": "devops.alauda.io/v1alpha1",
|
||
"kind": "ImageRegistry",
|
||
"name": "${HARBOR_NAME}",
|
||
"controller": true,
|
||
"blockOwnerDeletion": true
|
||
}]
|
||
},
|
||
"spec": {
|
||
"imageRegistry": {
|
||
"name": "${HARBOR_NAME}"
|
||
},
|
||
"secret": {
|
||
"name": "${HARBOR_SECRET_NAME}",
|
||
"namespace": "global-credentials"
|
||
},
|
||
"repoInfo": {
|
||
"repositories": ["/"]
|
||
}
|
||
},
|
||
"kind": "ImageRegistryBinding"
|
||
}</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">{
|
||
"kind": "coderepobinding",
|
||
"metadata": {
|
||
"name": "${GITLAB_BIND_NAME}",
|
||
"namespace": "${PRO_NAME}",
|
||
"labels": {
|
||
"codeRepoService": "${GITLAB_NAME}"
|
||
},
|
||
"annotations": {
|
||
"alauda.io/description": "",
|
||
"alauda.io/secretType": "kubernetes.io/basic-auth"
|
||
}
|
||
},
|
||
"spec": {
|
||
"codeRepoService": {
|
||
"name": "${GITLAB_NAME}"
|
||
},
|
||
"account": {
|
||
"secret": {
|
||
"namespace": "global-credentials",
|
||
"name": "${GITLAB_SECRET_NAME}"
|
||
},
|
||
"owners": null
|
||
}
|
||
}
|
||
}</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">{
|
||
"metadata": {
|
||
"name": "${GITLAB_BIND_NAME}",
|
||
"namespace": "${PRO_NAME}",
|
||
"labels": {
|
||
"alauda.io/project": "${PRO_NAME}",
|
||
"codeRepoService": "${GITLAB_NAME}",
|
||
"codeRepoServicePublic": "false",
|
||
"codeRepoServiceType": "Gitlab"
|
||
},
|
||
"annotations": {
|
||
"alauda.io/description": "",
|
||
"alauda.io/secretType": "kubernetes.io/basic-auth",
|
||
"alauda.io/toolAccessUrl": "${GITLAB_IP}",
|
||
"alauda.io/toolItemKind": "CodeRepoBinding",
|
||
"alauda.io/toolItemType": "Gitlab"
|
||
},
|
||
"ownerReferences": [{
|
||
"apiVersion": "devops.alauda.io/v1alpha1",
|
||
"kind": "CodeRepoService",
|
||
"name": "${GITLAB_NAME}",
|
||
"controller": true,
|
||
"blockOwnerDeletion": true
|
||
}]
|
||
},
|
||
"spec": {
|
||
"codeRepoService": {
|
||
"name": "${GITLAB_NAME}"
|
||
},
|
||
"account": {
|
||
"secret": {
|
||
"name": "${GITLAB_SECRET_NAME}",
|
||
"namespace": "global-credentials"
|
||
},
|
||
"owners": [{
|
||
"type": "User",
|
||
"name": "root",
|
||
"all": true,
|
||
"repositories": []
|
||
}]
|
||
}
|
||
}
|
||
}</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">{
|
||
"apiVersion": "devops.alauda.io/v1alpha1",
|
||
"kind": "JenkinsBinding",
|
||
"metadata": {
|
||
"name": "${JENKINS_BIND_NAME}",
|
||
"annotations": {
|
||
"alauda.io/description": "",
|
||
"alauda.io/product": "Alauda DevOps"
|
||
},
|
||
"namespace": "${PRO_NAME}"
|
||
},
|
||
"spec": {
|
||
"jenkins": {
|
||
"name": "${JENKINS_NAME}"
|
||
},
|
||
"account": {
|
||
"secret": {
|
||
"namespace": "global-credentials",
|
||
"name": "${JENKINS_SECRET_NAME}",
|
||
"usernameKey": "username",
|
||
"apiTokenKey": "password"
|
||
}
|
||
}
|
||
}
|
||
}</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">{
|
||
"kind": "Pipelineconfig",
|
||
"objectMeta": {
|
||
"annotations": {
|
||
"alauda.io/displayName": ""
|
||
},
|
||
"name": "${PRO_NAME}-pipeline-${index}",
|
||
"namespace": "${PRO_NAME}",
|
||
"labels": {
|
||
"app": ""
|
||
}
|
||
},
|
||
"spec": {
|
||
"runPolicy": "Serial",
|
||
"jenkinsBinding": {
|
||
"name": "${JENKINS_BIND_NAME}"
|
||
},
|
||
"strategy": {
|
||
"jenkins": {
|
||
"jenkinsfile": "",
|
||
"jenkinsfilePath": ""
|
||
}
|
||
},
|
||
"template": {
|
||
"pipelineTemplateRef": {
|
||
"kind": "ClusterPipelineTemplate",
|
||
"name": "GoLangBuilder"
|
||
},
|
||
"values": {
|
||
"PlatformCodeRepository": "{\"url\":\"${GITLAB_IP}/${GITLAB_ACCOUNT}/${GITLAB_REPO}\",\"credentialId\":\"global-credentials-${GITLAB_SECRET_NAME}\",\"kind\":\"select\",\"bindingRepositoryName\":\"${GITLAB_NAME}-${GITLAB_ACCOUNT}-${GITLAB_REPO}\",\"sourceType\":\"GIT\"}",
|
||
"Branch": "master",
|
||
"RelativeDirectory": "src",
|
||
"buildCommand": "go build",
|
||
"UseSonarQube": "false",
|
||
"CodeQualityBinding": "{\"namespace\":\"${PRO_NAME}\",\"name\":\"\"}",
|
||
"EnableBranchAnalysis": "false",
|
||
"AnalysisParameters": "sonar.sources=.\nsonar.sourceEncoding=UTF-8\n",
|
||
"FailedIfNotPassQualityGate": "false",
|
||
"imageRepository": "{\"type\":\"select\",\"repositoryPath\":\"${HARBOR_PATH}/${HARBOR_PROJECT}/${HARBOR_REPO}\",\"tag\":\"${PRO_NAME}-pipeline-${index}\",\"secretName\":\"dockercfg--${PRO_NAME}}--${HARBOR_BIND_NAME}\",\"secretNamespace\":\"${PRO_NAME}}\",\"credentialId\":\"${PRO_NAME}-dockercfg--${PRO_NAME}--${HARBOR_BIND_NAME}\"}",
|
||
"context": ".",
|
||
"buildArguments": "",
|
||
"dockerfile": "Dockerfile",
|
||
"retry": "3",
|
||
"_pipeline_": "{\"agent\":{\"labelMatcher\":\"golang.*\",\"label\":\"golang\"},\"options\":{\"raw\":\"buildDiscarder(logRotator(numToKeepStr: '200'))\"}}"
|
||
}
|
||
},
|
||
"triggers": [{
|
||
"cron": {
|
||
"enabled": false,
|
||
"rule": "",
|
||
"schedule": {
|
||
"weeks": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"],
|
||
"times": ["00:00"]
|
||
}
|
||
},
|
||
"type": "cron"
|
||
}]
|
||
}
|
||
}</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">{
|
||
"kind": "Pipelineconfig",
|
||
"objectMeta": {
|
||
"annotations": {
|
||
"alauda.io/displayName": ""
|
||
},
|
||
"name": "${PRO_NAME}-pipeline-${index}",
|
||
"namespace": "${PRO_NAME}",
|
||
"labels": {
|
||
"app": ""
|
||
}
|
||
},
|
||
"spec": {
|
||
"runPolicy": "Serial",
|
||
"jenkinsBinding": {
|
||
"name": "${JENKINS_BIND_NAME}"
|
||
},
|
||
"source": {
|
||
"sourceType": "GIT",
|
||
"git": {
|
||
"uri": "http://10.0.128.241:31101/root/go-test-public.git",
|
||
"ref": "master"
|
||
},
|
||
"secret": null
|
||
},
|
||
"strategy": {
|
||
"jenkins": {
|
||
"jenkinsfile": "",
|
||
"jenkinsfilePath": "Jenkinsfile"
|
||
}
|
||
},
|
||
"triggers": [{
|
||
"cron": {
|
||
"enabled": false,
|
||
"rule": "",
|
||
"schedule": {
|
||
"weeks": ["mon", "tue", "wed", "thu", "fri", "sat", "sun"],
|
||
"times": ["00:00"]
|
||
}
|
||
},
|
||
"type": "cron"
|
||
}]
|
||
}
|
||
}</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('get_status_times','0');</stringProp>
|
||
</JSR223PostProcessor>
|
||
<hashTree/>
|
||
</hashTree>
|
||
<WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="false">
|
||
<stringProp name="WhileController.condition">${__javaScript("${status}" != "Ready" && ${get_status_times} < ${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("get_status_times"));
|
||
|
||
get_status_times+=1;
|
||
|
||
vars.put("get_status_times",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("200")){
|
||
byte[] ResponseData = SampleResult.getResponseData();
|
||
String rspdata = new String(ResponseData);
|
||
JSONObject jsb = new JSONObject(rspdata);
|
||
String pipeline_name = jsb.getJSONObject("metadata").getString("name");
|
||
vars.put("pipeline_name", pipeline_name);
|
||
}else{
|
||
AssertionResult.setFailure(true);
|
||
AssertionResult.setFailureMessage("exec pipeline fail");
|
||
}</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('get_status_times','0');</stringProp>
|
||
</JSR223PostProcessor>
|
||
<hashTree/>
|
||
</hashTree>
|
||
<WhileController guiclass="WhileControllerGui" testclass="WhileController" testname="While Controller" enabled="true">
|
||
<stringProp name="WhileController.condition">${__javaScript("${status}" != "Complete" && "${status}" != "Failed" && ${get_status_times} < ${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("get_status_times"));
|
||
|
||
get_status_times+=1;
|
||
|
||
vars.put("get_status_times",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("200")){
|
||
byte[] ResponseData = SampleResult.getResponseData();
|
||
String rspdata = new String(ResponseData);
|
||
JSONObject jsb = new JSONObject(rspdata);
|
||
String pipeline_name = jsb.getJSONObject("metadata").getString("name");
|
||
vars.put("pipeline_name", pipeline_name);
|
||
}else{
|
||
AssertionResult.setFailure(true);
|
||
AssertionResult.setFailureMessage("exec pipeline fail");
|
||
}</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>
|