
# 配置全局变量最佳实践
#### 应用场景
全局变量用于构造数据集合，使测试数据更加丰富。在请求信息的报文内容中引用全局变量，执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
全局变量适用于很多场景，以下列举3种常见的全局变量应用场景：
- 多用户并发登录。模拟多个用户同时登录系统，每个用户使用自己唯一的用户名和密码。登录后，后续操作（如浏览、下单）需要携带该用户对应的会话Token（如JWT、Cookie）。为方便后续压测过程中模拟多个不同用户同时登录，可以提前将用户登录凭证录入到变量文件中，在需要登录凭证时通过添加全局变量调用。
- 测试数据唯一性保证。测试注册客户、创建订单等业务时，需要确保每次操作使用的关键标识（如订单号、客户手机号、邮箱）是唯一的，避免数据库主键冲突或业务逻辑校验失败。
- 全局配置参数。例如一个测试用例中定义了一些公共参数值，如Region、BaseURL等信息，当切换或更新这些信息时，只需修改变量内容即可全局生效，既可以提升效率，又能有效避免改漏、改错。
 
#### 操作流程
1. 创建测试工程。
2. 创建测试用例。
3. 添加全局变量。
4. 在测试用例中插入已经添加好的全局变量。
 
#### 实施步骤
1. [登录性能测试服务控制台](https://console.huaweicloud.com/cpts/#/home)。
2. 在左侧导航栏中选择"PerfTest测试工程"。
3. 单击"创建测试工程"。
4. 在弹出的对话框中，输入测试工程的名称，例如"Web-test"，单击"确定"。
5. 单击已创建的测试工程名称"Web-test"，进入测试工程详情页面。在"测试用例"页签，可以看到自动生成的默认目录和样本用例。
6. 在"测试用例"页签中，单击"全局变量"。
7. 添加全局变量。可以直接添加整数、枚举型或文本型全局变量，也可以通过csv格式文件或者xlsx格式文件添加文件型全局变量。 
   - 添加整数、枚举型或文本型全局变量 在"全局变量"弹框中单击"添加变量"，输入变量名称，选择变量类型，输入变量值，选择读取模式和共享模式后，单击操作栏的"保存"添加变量。例如，添加整数全局变量"number"。
     图1添加整数全局变量   
     ![](https://support.huaweicloud.com/bestpractice-cpts/zh-cn_image_0000002483423584.png "点击放大") 
   
   
   
   - 添加文件型全局变量
     1. 在"全局变量"弹框中单击"csv模板下载"或者"xlsx模板下载"获取所需的变量文件模板。
     
     2. 按照模板填写相应的变量名称和变量值，如[图2]，第一行填写变量名称，从第二行开始则填写对应变量的值，".csv"和".xlsx"填写规则一样。
        图2文件变量填写示例   
        ![](https://support.huaweicloud.com/bestpractice-cpts/zh-cn_image_0000002343942330.png "点击放大")
        文件变量说明如下：
        1. 变量名称：建议使用中文、英文、数字或下划线，变量的值则不限内容。
        
        2. 导入的文件格式：.csv（UTF-8无BOM格式）和.xlsx。
        
        3. 文件名称：文件名称长度上限为50字节(含后缀)，文件名称建议使用中文、英文、数字或下划线。
        
        4. 文件大小限制：
           - xlsx：专业版10M，企业版20M。
           
           - csv ：专业版10M，企业版默认80M。
            
         
     
     3. 单击"文件变量导入"，上传已填写好的变量文件。
      
   
   
   
   
8. 全局变量添加完成后，关闭"全局变量"弹窗。
9. 在测试用例中插入已经添加好的全局变量。例如在[5]中的样本用例请求信息中，插入已创建的全局变量"number"。
   
   1. 在请求信息输入框内输入"$"。
   
   2. 在插入变量弹框中，选择变量类型为"自定义变量"，变量范围为"全局"，变量名称选择"number"。
   
   3. 单击"选择 "插入变量。
      图3插入变量number   
      ![](https://support.huaweicloud.com/bestpractice-cpts/zh-cn_image_0000002343942338.png "点击放大") 
   
   
   
   
 
