
# 添加PerfTest数据指令、循环控制器、条件判断、集合点
#### 操作视频
本视频介绍在性能测试中常用组件的使用方法。
因不同版本操作界面可能存在差异，相关视频供参考，具体以实际环境为准。
<video controls="controls" preload="none" id="object1327291114118" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/cpts-video/1764846991644963209.mp4" title="常用组件使用介绍" poster="https://support.huaweicloud.com/usermanualnew-cpts/zh-cn_image_0000002492452782.jpg" height="300.0000" width="600.0000"></video>
#### 添加数据指令
1. [登录性能测试服务控制台](https://console.huaweicloud.com/cpts/#/home)。
2. 在左侧导航栏中选择"PerfTest测试工程"。
3. 在待编辑PerfTest测试工程所在行，单击工程名称进入测试工程详情页面。
4. 在"测试用例"页签左侧的"用例列表"下，选择待添加数据指令的测试用例。
5. 在"用例步骤"页签下，单击"更多 \> 数据指令"。
6. 单击"添加参数"，输入"参数名"，设置"参数逻辑"，选择"参数模式"。 
   - 输入"参数名" 参数逻辑结果赋值的参数名称。
     
   
   - 设置"参数逻辑"
     1. 直接输入普通字符串，如直接写入数字1.23或者字符串"abc"，对参数名进行赋值常量。
     
     2. 在输入框内输入"$"，对参数名赋值变量。在弹出的"插入变量"对话框中，选择"变量类型"。 **"变量类型"选择"自定义变量"时，需设置以下两个参数：**
        1. 变量范围：选择变量范围。
        
        2. 变量名称：自定义变量名称。自定义变量名称为添加变量时为变量取的名称。
        
        
        **"变量类型"选择"系统变量"时，需要选择函数名称。详细说明可以参考[表1]。**
         表1函数名称 
        | 函数名称  | 详细说明                                                   |
        |:---|:---|
        | 身份证号  | 随机生成一个身份证号。                                            |
        | 手机号   | 随机生成一个手机号。                                             |
        | 区间随机数 | 根据用户输入区间，随机生成区间内的任一整数。                                 |
        | 随机字符串 | 根据用户输入的位数（1-32），随机生成小写字母和数字混合的字符串。                     |
        | 时间戳   | 根据用户选择（秒（s）/毫秒（ms）），生成执行时当前时间戳（秒（s）对应10位，毫秒（ms）对应13位）。 |
        | 时间格式化 | 根据指定格式输出当前时间，支持时间偏移（单位为秒）。                             |
        | UUID  | 随机生成一个32位的字符串。                                         |
           
        **"变量类型"选择"四则运算"时，需要选择函数：**
        1. 在下拉框中选择"+"、"-"、"\*"、"/"或者"舍入模式"，单击"选择"。
        
        2. 单击按钮"![](https://support.huaweicloud.com/usermanualnew-cpts/zh-cn_image_0000002352422061.png "点击放大")"，在弹出的"四则运算函数编辑"对话框中，设置如下参数：
           - 表达式：输入四则运算的操作数，可以是直接写入的数字如1.23，也可以是全局变量、局部变量或者系统变量，还可以重新选择函数。
           
           - 模式：即为舍入模式，指定表达式计算结果的舍入行为。详细说明可以参考[表2]。
              表2模式说明 
             | 模式名称 | 详细说明（以保留2位小数位数为例）                                                                            |
             |:---|:---|
             | 远零舍入 | 保留小数位数后的非零小数向远离零的方向进位，例如1.234结果1.24，-1.234结果-1.24。                                           |
             | 近零舍入 | 保留小数位数后的非零小数向靠近零的方向截断，例如1.234结果1.23，-1.234结果-1.23。                                           |
             | 向上舍入 | 保留小数位数后的非零小数向正无穷大方向舍入，正数即为进位，负数即为截断，例如1.234结果1.24，-1.234结果-1.23。                             |
             | 向下舍入 | 保留小数位数后的非零小数向负无穷大方向舍入，正数即为截断，负数即为进位，例如1.234结果1.23，-1.234结果-1.24。                             |
             | 四舍五入 | 保留小数位数后的第一位数字小于五则截断，否则进位，例如1.234结果1.23，-1.235结果-1.24。                                        |
             | 五舍六入 | 保留小数位数后的第一位数字小于六则截断，否则进位，例如1.235结果1.23，-1.236结果-1.24。                                        |
             | 银行家  | 满足四舍五入，特例是当保留小数位数后的小数刚好为半数，向距离最近的偶数进位或者截断，例如1.2350000结果1.24，1.2250000结果1.22，1.2250001结果1.23。 |
             | 不舍入  | 不执行舍入行为。 当选择不舍入时，不需要输入精度。                                        |
                
             
           
           - 精度：指四则运算的小数保留位数，最大可输入精度位数32。
            
        
        3. 配置完成后，单击"确定"。当输入多个参数逻辑时，多个参数逻辑会拼接成一个字符串赋值给参数名。
         
        **"变量类型"为"加密函数"时，需要选择加密类型和变量插入的位置，加密类型如下：**
        - MD5：对val数据进行md5加密，返回加密后的数据字符串。
        
        - MD5-BASE64：对val数据进行MD5-BASE64编码，返回编码后的数据字符串。
        
        - SHA-1：对输入的数据进行SHA-1加密，返回加密后的数据字符串。
        
        - SHA-224：对输入的数据进行SHA-224加密，返回加密后的数据字符串。
        
        - SHA-256：对输入的数据进行SHA-256加密，返回加密后的数据字符串。
        
        - SHA-384：对输入的数据进行SHA-384加密，返回加密后的数据字符串。
        
        - SHA-512：对输入的数据进行SHA-512加密，返回加密后的数据字符串。
        
        - BASE64编码：对输入的数据进行BASE64编码，返回编码后的数据字符串。
        
        - BASE64解码：对输入的数据进行BASE64解码，返回解码后的数据字符串。
          
      
   
   - 选择"参数模式"
     - 在下拉框中选择"重复赋值"：单线程每次取值都会重新赋值。
     
     - 在下拉框中选择"赋值一次"：一个线程内仅赋值一次。
      
   
   
   
   
7. 配置完成后，单击"保存"。
 
#### 添加循环控制器
1. 在"测试用例"页签左侧的"用例列表"下，选择待添加循环控制器的用例。
2. 在"用例步骤"页签下，单击"更多 \> 循环控制器"。
3. 设置参数。 
   循环次数：设置循环执行次数，输入大于等于1的值，循环次数限制为100万。
   退出条件：请求满足该条件，跳出循环。表达式和对比值均支持变量和字符串，暂不支持多个条件组合使用，如需使用集合或多对比值的匹配，可使用正则表达式。
   
   
4. 单击"添加更多"，增加循环体执行内容。步骤嵌套层级最大为10级。
5. 配置完成后，单击"保存"。
 
#### 添加条件判断
1. 在"测试用例"页签左侧的"用例列表"下，选择待添加条件判断的用例。
2. 在"用例步骤"页签下，单击"更多 \> 条件判断"。
3. 设置参数。 
   判断条件：请求满足该条件，执行该条件控制器定义的请求、事务或其他逻辑控制器。表达式和对比值均支持变量和字符串，暂不支持多个条件组合使用，如需使用集合或多对比值的匹配，可使用正则表达式。
   
   
4. 单击"添加更多"，增加满足条件后执行的请求、事务或其他逻辑控制器。步骤嵌套层级最大为10级。
5. 配置完成后，单击"保存"。
 
#### 添加集合点
集合点的目的是阻塞并发，直到X个并发被阻塞或达到等待时间，然后它们都被一次释放。因此，集合点可以在测试用例的不同点创建大的即时负载。
1. 在"测试用例"页签左侧的"用例列表"下，选择待添加集合点的用例。
2. 在"用例步骤"页签下，单击"更多 \> 集合点"。
3. 设置参数。 
   等待时间（ms）：在集合点等待的时长。
   并发数：用户数累积到并发数，释放在集合点等待的用户。
   
   
4. 配置完成后，单击"保存"。
 
