华为云用户手册
-
监控指标 本章节定义了图引擎服务上报 云监控 的监控指标的命名空间,监控指标列表和维度定义,用户可以通过 云监控服务 提供的管理控制台或API接口来检索图引擎服务产生的监控指标。 图引擎服务上报云监控的监控指标命名空间为:SYS.GES 表1 图引擎服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象(维度) 监控周期(原始指标) ges001_vertex_util 点容量使用率 统计图实例的点容量使用率,其值为当前图点个数和图点容量的比值。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges002_edge_util 边容量使用率 统计图实例的边容量使用率,其值为当前图边个数和图边容量的比值。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges003_average_import_rate 平均导入速率 统计图实例导入点或者边的平均速率。 0~400000 值类型:Float Count/s 不涉及 GES实例 1分钟 ges004_request_count 请求个数 统计图实例接收的请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges005_average_response_time 平均响应时间 统计图实例接收请求平均响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges006_min_response_time 最小响应时间 统计图实例接收请求最小响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges007_max_response_time 最大响应时间 统计图实例接收请求最大响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges008_read_task_pending_queue_size 读任务等待队列长度 统计图实例读请求任务等待队列长度,用于查看当前等待的读请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges009_read_task_pending_max_time 读任务最长等待时间 统计图实例读请求任务最长等待时间,用于查看读请求最长的等待时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges010_pending_max_time_ read_task_type 等待最长的读任务类型 统计图实例等待最长的读请求任务类型,参考表3可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges011_read_task_running_queue_size 读任务运行队列长度 统计图实例读请求任务运行队列长度,用于查看当前正在运行的读请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges012_read_task_running_max_time 读任务最长运行时间 统计图实例读任务最长运行时间,用于查看读请求最长的运行时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges013_running_max_time_ read_task_type 运行最长的读任务类型 统计图实例运行最长的读请求类型,参考可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges014_write_task_pending_queue_size 写任务等待队列长度 统计图实例写请求任务等待队列长度,用于查看当前等待的写请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges015_write_task_pending_max_time 写任务最长等待时间 统计图实例写请求任务最长等待时间,用于查看写请求最长的等待时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges016_pending_max_time_ write_task_type 等待最长的写任务类型 统计图实例等待最长的写请求任务类型,参考表3可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges017_write_task_running_queue_size 写任务运行队列长度 统计图实例写请求任务运行队列长度,用于查看当前正在运行的写请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges018_write_task_running_max_time 写任务最长运行时间 统计图实例写请求任务最长运行时间,用于查看写请求最长的运行时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges019 _running_max_time_ write_task_type 运行最长的写任务类型 统计运行最长的写请求任务类型,参考可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges020_computer_resource_usage 计算资源 使用率 统计每个图实例的计算资源使用率。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges021_memory_usage 内存资源使用率 统计每个图实例的内存资源使用率。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges022_iops IOPS 统计每个图实例每秒处理的I/O请求数量。 ≥0 值类型:Int Count/s 不涉及 GES实例 1分钟 ges023_bytes_in 网络输入吞吐量 统计每秒从网络输入每个图实例的数据总量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges024_bytes_out 网络输出吞吐量 统计从每个图实例每秒发送到网络的数据总量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges025_disk_usage 磁盘利用率 统计每个图实例节点的磁盘使用情况。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges026_disk_total_size 磁盘总大小 统计每个图实例的数据磁盘总大小。 ≥0 值类型:Float GB 不涉及 GES实例 1分钟 ges027_disk_used_size 磁盘使用量 统计每个图实例的数据磁盘已用大小。 ≥0 值类型:Float GB 不涉及 GES实例 1分钟 ges028_disk_read_throughput 磁盘读吞吐量 统计图实例数据磁盘每秒读取的数据量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges029_disk_write_throughput 磁盘写吞吐量 统计图实例数据磁盘每秒写入的数据量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges030_avg_disk_sec_per_read 磁盘读耗时 统计图实例数据磁盘每次读取数据的平时耗时。 ≥0 值类型:Float s 不涉及 GES实例 1分钟 ges031_avg_disk_sec_per_write 磁盘写耗时 统计图实例数据磁盘每次写入数据的平时耗时。 ≥0 值类型:Float s 不涉及 GES实例 1分钟 ges032_avg_disk_queue_length 磁盘平均队列长度 统计每个图实例数据磁盘平均的I/O队列长度。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟
-
图引擎实例连接信息 选择您已创建的图实例名称,可以查看到以下信息: 内网访问地址:同一私有网络内的弹性云服务器可以通过内网访问地址连接当前图实例。 公网访问地址:使用公网访问地址(弹性IP)可以从互联网访问图实例。同时支持图实例弹性IP的解绑与绑定。 JDBC连接字符串(内网):当JDBC驱动执行机器和图实例处于同一私有网络时,使用此配置。 JDBC连接字符串(公网):当JDBC驱动执行机器可以通过互联网访问图实例(已绑定弹性IP)时,使用此配置。 图3 实例信息
-
删除label 调用接口后,该label相关联的所有数据都会被删除,请您谨慎操作。 图版本小于2.2.18,不支持schema的label删除功能。 持久化版的图不支持schema的label删除功能。 系统默认的label“_DEFAULT_”不支持删除操作。 删除label的操作如下: 如果您想要删除某个label,在图引擎编辑器的左侧的“元数据”列表中,单击元数据旁的“删除”按钮。 图8 删除label 在弹出的确认窗口内,认真阅读完提示信息,确认要删除的label名称后,在框内完整的输入“DELETE”(或单击“一键输入”),输入完成后单击“是”。 图9 删除确认窗口 删除过程中,画布下方“结果展示区”会显示删除label算法的返回结果。 图10 结果展示 删除过程中,绘图区右侧的条件过滤功能置灰,不可使用。 图11 条件过滤
-
修改label 图版本为2.3.18及以上版本支持该功能。 在图引擎编辑器左侧的元数据列表中,单击想要修改的元数据,会弹出该元数据label详情页。 可以直接修改label的属性名称、基数、数据类型等信息。 若想要隐藏或删除该属性,可以单击操作列的“隐藏”或“删除”按钮进行操作。 若您误删了某个属性或者修改有误,可以单击“复位”按钮,将会回到您上一次保存的数据状态。 修改完成,确认无误后,单击“保存”按钮进行更新。 图3 修改label
-
label的导入和导出 将当前图的元数据、点边数据集导入到OBS桶内或者从OBS桶内导出。 导入:单击元数据列表中“导入”。在弹出的窗口中,选择要导入的元数据,点边数据集,日志储存路径,边处理以及导入类型后,单击“确定”可将数据从OBS桶内导入到当前图中。 日志储存路径:用于存储导入图过程中不符合元数据定义的点、边数据集和详细日志。 边处理:包括“允许重复边”,“忽略之后的重复边”,“覆盖之前的重复边”和“重复边忽略Label”。重复边默认起点和终点相同,当考虑label时,表示边的起点、终点、label相同才为重复边。 图6 元数据的导入 导出:单击元数据列表中“导出”。在弹出的窗口中,设置要导出的元数据、点边数据集的名称和导出的路径,单击“确定”可将数据导出到OBS桶内。 图7 元数据的导出
-
添加label 在图引擎编辑器左侧的元数据列表中,单击,可增加一个新的标签。 Label 名称:表示新增标签的名字。 Label 类型:可以选择设置的标签类型(点,边或者通用类型),通用类型表示标签既可以表示点,也可以表示边。 自定义点样式:您可以来定义标签的颜色和标记,用来区分各个点。 添加属性,默认实体只展示第一个添加的属性,其余不展示,可手动调整展示哪个属性,画布上会实时响应。 图1 添加label
-
隐藏label 隐藏单个label的所有点和边 在图引擎编辑器的左侧的元数据列表中,单击元数据旁的“眼睛”按钮,可在图分析结果中隐藏该元数据的所有点。 图4 隐藏label 隐藏label:隐藏当前label是否在画布中展示。 在图引擎编辑器左侧的元数据列表中,单击想要修改的元数据,会弹出该元数据label详情页,单击label旁的第二个“”按钮,可在画布中隐藏当前label信息展示,仅支持当前label下的点。 图5 隐藏label
-
任务类型对应表 表2 任务类型和任务名称对应表 任务类型 任务名称 100 点查询 101 创建点 102 删除点 103 修改点属性 104 添加点Label 105 删除点Label 200 边查询 201 创建边 202 删除边 203 修改边属性 300 查询Schema详情 301 添加Label 302 修改Label 303 查询Label 304 修改属性 400 查询图详情 401 清空图 402 在线增量导入图 403 创建图 405 删除图 406 导出图 407 filtered_khop 408 查询路径详情 409 离线增量导入图 500 创建备份 501 从备份恢复图 601 创建索引 602 查询索引 603 更新索引 604 删除索引 700 运行算法
-
监控指标 表1 图引擎服务支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象(维度) 监控周期(原始指标) ges001_vertex_util 点容量使用率 统计图实例的点容量使用率,其值为当前图点个数和图点容量的比值。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges002_edge_util 边容量使用率 统计图实例的边容量使用率,其值为当前图边个数和图边容量的比值。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges003_average_import_rate 平均导入速率 统计图实例导入点或者边的平均速率。 0~400000 值类型:Float Count/s 不涉及 GES实例 1分钟 ges004_request_count 请求个数 统计图实例接收的请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges005_average_response_time 平均响应时间 统计图实例接收请求平均响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges006_min_response_time 最小响应时间 统计图实例接收请求最小响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges007_max_response_time 最大响应时间 统计图实例接收请求最大响应时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges008_read_task_pending_queue_size 读任务等待队列长度 统计图实例读请求任务等待队列长度,用于查看当前等待的读请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges009_read_task_pending_max_time 读任务最长等待时间 统计图实例读请求任务最长等待时间,用于查看读请求最长的等待时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges010_pending_max_time_ read_task_type 等待最长的读任务类型 统计图实例等待最长的读请求任务类型,参考任务类型和任务名称对应表可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges011_read_task_running_queue_size 读任务运行队列长度 统计图实例读请求任务运行队列长度,用于查看当前正在运行的读请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges012_read_task_running_max_time 读任务最长运行时间 统计图实例读任务最长运行时间,用于查看读请求最长的运行时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges013_running_max_time_ read_task_type 运行最长的读任务类型 统计图实例运行最长的读请求类型,参考可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges014_write_task_pending_queue_size 写任务等待队列长度 统计图实例写请求任务等待队列长度,用于查看当前等待的写请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges015_write_task_pending_max_time 写任务最长等待时间 统计图实例写请求任务最长等待时间,用于查看写请求最长的等待时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges016_pending_max_time_ write_task_type 等待最长的写任务类型 统计图实例等待最长的写请求任务类型,参考任务类型和任务名称对应表可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges017_write_task_running_queue_size 写任务运行队列长度 统计图实例写请求任务运行队列长度,用于查看当前正在运行的写请求个数。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟 ges018_write_task_running_max_time 写任务最长运行时间 统计图实例写请求任务最长运行时间,用于查看写请求最长的运行时间。 ≥0 值类型:Int ms 不涉及 GES实例 1分钟 ges019 _running_max_time_ write_task_type 运行最长的写任务类型 统计运行最长的写请求任务类型,参考可以找到对应的任务名称。 ≥1 值类型:Int - 不涉及 GES实例 1分钟 ges020_computer_resource_usage 计算资源 使用率 统计每个图实例的计算资源使用率。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges021_memory_usage 内存资源使用率 统计每个图实例的内存资源使用率。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges022_iops IOPS 统计每个图实例每秒处理的I/O请求数量。 ≥0 值类型:Int Count/s 不涉及 GES实例 1分钟 ges023_bytes_in 网络输入吞吐量 统计每秒从网络输入每个图实例的数据总量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges024_bytes_out 网络输出吞吐量 统计从每个图实例每秒发送到网络的数据总量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges025_disk_usage 磁盘利用率 统计每个图实例节点的磁盘使用情况。 0~100 值类型:Float % 不涉及 GES实例 1分钟 ges026_disk_total_size 磁盘总大小 统计每个图实例的数据磁盘总大小。 ≥0 值类型:Float GB 不涉及 GES实例 1分钟 ges027_disk_used_size 磁盘使用量 统计每个图实例的数据磁盘已用大小。 ≥0 值类型:Float GB 不涉及 GES实例 1分钟 ges028_disk_read_throughput 磁盘读吞吐量 统计图实例数据磁盘每秒读取的数据量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges029_disk_write_throughput 磁盘写吞吐量 统计图实例数据磁盘每秒写入的数据量。 ≥0 值类型:Float Byte/s 1024 GES实例 1分钟 ges030_avg_disk_sec_per_read 磁盘读耗时 统计图实例数据磁盘每次读取数据的平时耗时。 ≥0 值类型:Float s 不涉及 GES实例 1分钟 ges031_avg_disk_sec_per_write 磁盘写耗时 统计图实例数据磁盘每次写入数据的平时耗时。 ≥0 值类型:Float s 不涉及 GES实例 1分钟 ges032_avg_disk_queue_length 磁盘平均队列长度 统计每个图实例数据磁盘平均的I/O队列长度。 ≥0 值类型:Int Count 不涉及 GES实例 1分钟
-
导出测试工程 为简化操作,用户不必从零开始编写测试工程,只需要找到与自己业务模型类似的工程,导出测试工程,在此基础上略作修改,再导入测试工程即可。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在PerfTest测试工程列表中选中一个或多个待导出的工程,单击“导出”,保存测试工程文件ProjectList(序列号).json到本地。 如果测试工程中包含SLA规则,导出测试工程时,无法导出SLA规则的相关内容。 如果全局变量上传了文件,导出测试工程时,无法导出对应的文件。 如果测试工程中包含加密的全局变量,测试工程导出后,不支持将导出的工程再导入。 暂不支持导出含有MQTT协议的工程。 按照业务需求修改文件中相关参数、工程名称(工程名称需唯一),并保存文件。请勿修改ProjectList(序列号).json文件的格式。
-
导入测试工程 性能测试服务支持导入PerfTest类型和JMeter类型的测试工程。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”,单击“导入”。 PerfTest工程导入。当前暂不支持导入含有MQTT协议的工程。 “工程类型”选择“PerfTest工程”。 单击PerfTest文件后的“选择文件”,选中json格式的工程文件,单击“导入”。 导入的工程名称不能和性能测试服务中已存在的工程同名,否则导入会失败。 JMeter工程导入。 “工程类型”选择“JMeter工程”。 单击JMeter文件后的“选择文件”,选中jmx格式的工程文件,单击“导入”。 JMeter工程导入说明如下: JMeter文件中关键信息请使用性能测试服务支持的字符,详情请参见 JMeter与PerfTest字段对应关系。 JMeter解析的内容包括: 线程组、HTTP请求、HTTP信息头管理器、正则表达式提取器、用户参数、用户定义的变量、HTTP默认请求值、固定定时器。 暂不支持随机变量。 为保证数据导入的准确性,尽量不要使用重名变量。 JMeter脚本大小不超过5MB。 工程导入成功后,单击“关闭”。您可以根据业务需要参照修改测试工程和管理事务请求信息修改测试工程。
-
报文如何填写 报文通俗的解释就是用户在网站界面上的所有单击操作。每个单击操作通过编辑成满足协议规范带有用户请求内容格式的码流传送给不同的第三方,最后得到一个正确或者失败响应的一个过程。 可以通过在操作时按“F12”,或抓包工具(例如wireshark)查看报文是怎么请求的,然后根据实际业务在压测的报文中填写。 例如,模拟登录请求的POST方法,对应的请求连接、请求方法、头域、报文内容如下图所示。 图1 模拟登录请求的POST方法
-
操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。 在“报文”页签,请根据业务的协议类型选择匹配的协议类型,当前支持HTTP/HTTPS/TCP/UDP/HLS/RTMP/WEBSOCKET/HTTP-FLV/MQTT。请参照以下对应的报文参数表设置基本信息。 表1 HTTP和HTTPS协议报文参数 参数 参数说明 请求方法 可以选择GET、POST、PATCH、PUT或DELETE。 请求地址 发送请求的URL地址,比如“http:// 域名 /路径”,也可以包含参数的部分“http://域名/路径?key1=value1&key2=value2”。 支持变量输入,详情请参见插入变量。 响应超时(ms) 发送请求,等待服务器响应的超时时间。响应超时时间范围是20ms到5分钟。 如果不设置此参数,默认响应超时时间为5000ms。 携带cookie 用例下至少已有一个请求信息,添加新的请求信息时进行此参数设置。 自动获取:使用响应设置的cookie。 手动设置:只使用当前请求信息设置在头域中的cookie。 自动重定向 选择是否跳转到重定向的地址,开关默认打开,即默认自动跳转到重定向的地址。 请求参数 请求地址中的参数设置。 单击“添加请求参数”,设置“名称”和“值”。选择是否勾选“Url Encode”,默认为不勾选,勾选后对请求参数的值做URL编码。 如果您不需要添加请求参数,可以单击“删除”,删除请求参数。 请求头 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域做要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。 单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。 单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。 “请求方法”为“POST”或“PUT”,且“头域”为“Content-Type”时,“值”有三种类型,且支持插入变量: 自定义:直接在输入框中输入值。 application/x-www-form-urlencoded:请求体为可添加的键值对形式,值为文本。 multipart/form-data:请求体为可添加的键值对形式,值可为文本或文件。值为文件时,支持body体导入。 Body体 实体的主体部分包含一个由任意数据组成的数据块,并不是所有的报文都包含实体的主体部分。 如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 在请求内容输入框内输入“$”。 在“插入变量”对话框中,配置参数。详情请参见插入变量。 单击“选择”。 表2 TCP协议报文参数 参数 参数说明 IP 发送请求到被测服务器的IP地址。 端口号 发送请求到被测服务器的端口号。 连接超时 发起连接,服务器无响应的超时时间。连接超时时间范围是20ms到60s。 返回超时 连接建立成功,等待响应返回的超时时间。返回超时时间范围是20ms到60s。 连接设置 重复使用连接:请求响应完成后,不断开连接,复用连接发送接收下一次请求响应。 关闭连接:每次完成请求响应完成后,断开连接,下一次重新建立连接。 返回结束设置 通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。 返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。 结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成 。 内容格式 请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。16进制码流的内容取值范围为“0~9”和“a~f”,且总字符个数为双数。 如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 在请求内容输入框内输入“$”。 在“插入变量”对话框中,配置参数。详情请参见插入变量。 单击“选择”。 表3 UDP协议报文参数 参数 参数说明 IP 发送请求到被测服务器的IP地址。 端口号 发送请求到被测服务器的端口号。 返回结束设置 通过返回结束设置,来判断本次请求的响应内容是否已经接收完成。结束符建议设置一个唯一的结束标记,如果设置的结束符在响应内容中存在多个,当接收到第一个结束符时,就认为响应内容已经接收完成,这样接收的响应数据就不完整。 返回数据长度:设置返回数据的长度,单位字节。当接收到此长度的响应内容时,数据接收完成。 结束符:设置返回数据的结束标记。当接收到结束符时,数据接收完成 。 内容格式 请根据被测服务器的业务请求内容,选择“字符串”或“16进制码流”。16进制码流的内容取值范围为“0~9”和“a~f”,且总字符个数为双数。 如果已设置全局变量或响应提取的局部变量,可在报文内容部分引用变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。 在请求内容输入框内输入“$”。 在“插入变量”对话框中,配置参数。详情请参见插入变量。 单击“选择”。 表4 HLS协议报文参数 参数 参数说明 流媒体地址 视频源的地址,比如“http://域名/路径”。 播放时长(秒) 模拟播放的时长。用例调试时,播放时长会设置为3秒。 直播缓冲等待请求时间间隔(毫秒) 直播场景下,视频播放源无新数据时候,尝试获取新数据的时间间隔。 直播缓冲等待请求的最大次数 直播场景下,视频播放源无新数据时候,尝试获取新数据的最大次数,如果超过最大次数,则判断为失败。 表5 RTMP协议报文参数 参数 参数说明 请求方式 推流:将现场的视频信号传到网络的过程。 拉流:服务器里面有流媒体视频文件,用指定地址进行拉取的过程。 请求方式为“推流”时设置以下参数。 流媒体服务器地址 被测流媒体服务器的IP地址。 端口号 被测流媒体服务器监听的端口号,RTMP协议默认为1935。 应用名称 即推流URL中的AppName,直播流媒体文件存放路径,例如:live。 流名称 即推流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。 推流时长(秒) 模拟主播推流的时长,单位:秒。 视频源地址 用来存放模拟直播推流的视频源文件的OBS地址。目前仅支持flv文件格式,且不支持H.265编码的非标准flv文件。 请求方式为“拉流”时设置以下参数。 流媒体服务器地址 被测流媒体服务器的IP地址。 端口号 被测流媒体服务器监听的端口号,RTMP协议默认为1935。 应用名称 即拉流URL中的AppName,直播流媒体文件存放路径,例如:live。 流名称 即拉流URL中的StreamName,用来唯一标识一条直播流,例如:livestream。 播放时长(秒) 模拟观众观看直播的时长,单位:秒。 表6 WEBSOCKET协议报文参数 参数 参数说明 请求方法 Connect:与压测网站建立WebSocket连接。 DisConnect:关闭与压测网站的连接。 Pong:向压测网站发送pong。 Ping&Pong:向压测网站发送pong期望返回ping。 Request:向压测网站发送请求并接收响应。 ReadOnly:仅接收压测网站发送的信息。 WriteOnly:仅向压测网站发送信息。 请求连接地址 WebSocket连接的URL地址,比如“ws://域名/路径”,支持加密请求,即“wss://域名/路径”。 连接超时(ms) 当“请求方法”为“Connect”时,需要设置该参数。 发起连接,服务器无响应的超时时间。连接超时时间范围是20ms到60s。 状态码 当“请求方法”为“DisConnect”时,需要设置该参数。 自定义关闭连接对应的状态码。默认值为1000,输入范围为0~4999。 请求类型 当“请求方法”为“Request/WriteOnly”时,需要设置该参数。 请根据被测服务器的业务请求内容,下拉选择“Text”或“Binary”。Binary表示十六进制。 请求内容 当“请求方法”为“Request/WriteOnly”时,需要设置该参数。 根据请求类型中设定格式输入请求信息报文内容。 当请求内容为文本类型时,支持变量输入,详情请参见插入变量。 响应类型 当“请求方法”为“Request/ReadOnly”时,需要设置该参数。 请根据被测服务器的业务响应内容,下拉选择“Text”或“Binary”。Binary表示十六进制。 响应超时(ms) 连接建立成功,等待响应返回的超时时间。返回超时时间范围是20ms到60s。 请求头 请根据压测服务器需要校验或者使用的头域来添加相关头域及内容。性能测试服务没有对必填头域做要求,仅透传用户定义的头域到压测服务器。“头域”的说明请参见头域说明。 单击“添加头域”,设置“头域”和“值”,如果您不需要添加头域信息,单击“删除”,删除报文头域。 单击“批量编辑”,可以切换成文本框编辑模式同时对多个头域进行编辑;单击“键值编辑”,可返回“键值对”编辑模式。 表7 HTTP-FLV协议报文参数 参数 参数说明 流媒体地址 视频源的地址,比如“http://{视频源ip}:8080/live/stream.flv”。 播放时长 模拟播放的时长。用例调试时,播放时长会设置为3秒。 表8 MQTT协议报文参数 参数 参数说明 请求方法 Connect:与压测网站建立MQTT连接。 Publish:发布消息。 Subscribe:订阅发布的消息。 DisConnect:关闭与压测网站的MQTT连接。 请求方法为“Connect”时设置以下参数。 MQTT版本 MQTT的版本,当前支持3.1、3.1.1版本。 传输地址 MQTT服务器地址,地址支持TCP、SSL、WS、WSS协议。 MQTT传输地址暂不支持域名绑定功能。 超时时间(ms) 客户端建立连接、发送消息等相关操作的超时时间。 客户端ID MQTT客户端ID。通过“添加随机后缀”开关,可以设置客户端ID是否添加随机后缀。 用户名 MQTT客户端设置的用户名。用户名为敏感参数,请通过敏感参数模式的全局变量设值。 密码 MQTT客户端设置的密码。密码为敏感参数,请通过敏感参数模式的全局变量设值。 连接保活时长(s) 活动心跳间隔时间,单位为秒。 清空会话 打开开关,客户端和服务器之间建立连接时,会清空上一次连接所保留的会话信息。 关闭开关,客户端和服务器之间建立连接时,不会清空上一次连接所保留的会话信息。 添加遗嘱 打开开关,添加遗嘱。当客户端异常断开连接时,MQTT代理会自动将该遗嘱消息发布给其他订阅者。 添加遗嘱时设置以下参数: 主题:遗嘱的主题。 类型:支持Text和Hex类型,可以配置是否添加时间戳。 内容:遗嘱的内容。 QoS级别:服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。 保留遗嘱:打开开关,客户端订阅后马上就会收到设置的遗嘱信息;关闭开关,发布遗嘱信息的客户端发生意外断开之后,订阅了该客户端遗嘱信息的客户端才可收到遗嘱消息。 关闭开关,无遗嘱发送。 请求方法为“Publish”时设置以下参数。 主题 发布消息的主题。 QoS级别 服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。 请求类型 支持Text和Hex类型,可以配置是否添加时间戳。 请求内容 请求的详细内容。 超时时间(ms) 客户端发送消息的超时时间。 保留消息 打开开关,客户端断开连接时发布的消息仍会保留在服务器。 关闭开关,客户端断开连接时发布的消息会被清除。 请求方法为“Subscribe”时设置以下参数。 订阅主题 订阅消息的主题,应与发布消息的主题匹配。 QoS级别 服务质量等级,用于描述消息传递的可靠性。最多发送一次,适用于实时数据传输;至少发送一次,适用于需要可靠性但允许轻微延迟的应用;只发送一次,适用于需要高可靠性和较大延迟的应用。 响应类型 支持Text和Hex类型,可以配置是否添加时间戳。 超时时间(ms) 订阅主题的超时时间。 结束条件 达到该条件时,结束订阅消息。 触发耗时上限:达到设置的耗时上限时结束订阅消息。 触发收到消息数上限:达到设置的收到消息数上限时结束订阅消息。 请求方法为“Disconnect”时无需设置参数。 配置完成后,单击“保存”。
-
操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”,单击待操作工程后的。 在“性能报告”页签下选择需要查看测试报告的任务,此任务需正在执行中。 单击“任务名称”,或单击操作栏的,查看实时测试报告。单击页面右上方“停止任务”,可以停止压测任务。详细参数说明请参考测试报告说明。 测试报告名称支持修改,在“报告列表”中,鼠标放在测试报告名称上,单击后输入新的报告名称。 在“总览”页签下,您可以查看失败数/总请求数、平均时延、RPS、最大并发、成功率、SLA告警、带宽、动态趋势、响应码等。 在“明细”页签下,您可以查看该测试任务下测试用例的日志、通用测试指标、请求详情及SLA规则是否触发。 单击“查看日志”,在“查看日志”弹窗中可以查看请求日志、事件日志及Pod信息。其中请求日志根据请求名称、返回码、结果这三个条件,各展示10条日志。 用例日志采集策略配置为请求模式的请求日志支持对返回码/结果/请求名称进行过滤展示。日志采集策略中在测试用例的“高级配置”中设置,详见高级配置。 测试任务执行过程中,单击“过程调压”可以根据实时数据进行动态的压力调整。过程调压只支持并发模式、TPS模式、时长策略。 报告明细显示的采样模式有等距抽样值和等距平均值。 等距抽样值:根据用例执行时长,对大于30min的用例的趋势图以固定的时间间隔进行抽样点展示。 等距平均值:根据用例执行时长,对大于30min的用例的趋势图以固定的时间间隔进行平均值展示。 单击“数据显示”下拉框,输入关键字搜索,可以显示您需要的用例或请求数据。也可以在“数据显示”下拉框的用例目录中直接单击您需要显示的用例或请求数据。 在“明细”页签下,您也可以单击“列表”进入报告指标汇总页面。 单击“自定义列”,可以在“表格设置”弹框中选择需要显示的列表项;在弹框右侧拖动已选列,可以改变列表项的顺序。 图1 表格设置 单击操作栏中的查看日志。 单击操作栏中的进行过程调压,过程调压只支持并发模式、TPS模式、时长策略。 单击操作栏中的编辑测试用例。 如果测试任务已关联智能分析对象中的应用监控( APM ),测试报告则体现“调用分析”页签。在“调用分析”页签,通过设置查询条件,可以查看符合查询条件的APM调用详细记录。 如果测试任务已关联智能分析对象中的主机监控( AOM ),测试报告则体现“监控指标”页签。在“监控指标”页签可以查看CPU使用率、内存使用率、磁盘读取速度、磁盘写入速度信息。
-
使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的 CTS /system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或 云日志 服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。 CTS新版事件列表不显示数据类审计事件,您需要在旧版事件列表查看数据类审计事件。 云审计控制台对用户的操作事件日志保留7天,过期自动删除,不支持人工删除。
-
概要 插件功能为白名单特性,需要提交工单申请开通,审批同意后方可使用。 性能测试服务支持使用Go语言开发自定义请求、函数及检查点进行功能扩展。自定义请求可用于实现数据库协议、MQTT协议或自有协议等协议的扩展对接。自定义函数可用于辅助生成测试数据,如生成特定加解密数据、自定义算法生成数据等。自定义检查点用于对非text、JSON等数据序列化数据或性能测试服务不支持的场景进行检查点扩展。 为了实现自定义请求、函数及检查点,需按照以下签名约定进行开发,并按照以下Go插件编译约束编译成so文件,同时使用JSON文件描述自定义请求、函数及检查点。 父主题: 插件管理
-
测试资源组的说明与使用约束 测试资源组包含共享资源组和私有资源组两种类型,共享资源组为系统默认提供,私有资源组需要自行创建。 共享资源组的执行节点已绑定弹性IP(如需获取共享资源组的IP地址,可以提交工单通过售后渠道获取),当被测应用有网络访问限制时,建议使用私有资源组。 共享资源组最大支持1000并发和100Mb带宽,如果需要更高并发或带宽,建议使用私有资源组。 JMeter测试任务只可以使用私有资源组。
-
正则表达式响应提取示例 示例一 例如,前一个报文响应的报文内容如下所示: "baseInfo" : { "mobilephone":"xxxxxxxxxxx", "Telephone":"xxxxxxxxxxx", "unitGuid":"xx", "unitMame":null, "address":"xxx", "gender" : 0, "imageUr1" :nul1 }, "UserNotices":null }, "msgId'" : "64xxxxxxxxxxxxxxxxxxxxxxxf5", "isUsed" :"1" "token":"eyxxxxxxxxxxxJ9.eyJzdW1101JYZMiLCJcUbdGUkIJezMT!!zz#z!20TxxxxxxxxxxxxxxxxxS1611dYQISHTFKifVOsImd1aWQi0ilOODkiLCJleHAiOjEiMzIizNzY1MjZ9.myU5idiASM-11@EP7YQTfTsR_8zsq7?sbYJYoxfRsuf6OZhGL-XWmjnvdaviGauhSdw16ImWOFEvbA CS HMXGT1U0ijS5z6ezX@sZePruzFnvcIMgShF8xNPN6zVokQp-uwbyS3W6NpZpDuwsjuiZ7DZTNpKoqCkGHwvPJrHBOrWFR_u6-FBbTiFiqdhQb95U-1gLiLvoZHY_rguzwyrZ-leGRdCG_ZASreoWC-uH)HnqltpgItrChWQToHQyxOABdMSbBSHhNctBBZHgQPMESqQQQTbBiPGvbQDprB7ZBFMUB_ShynS_evtyfEladGEddhOBn-fxxxxxxxxxxx" }, 如果想要获取token值的,可通过正则表达式"token"\s*:\s*"(.*?)"提取,响应提取的设置如下图所示。 示例二 例如,前一个报文响应的报文内容为: javawind:9javawind:12 javawind:16javawind:17 javawind:46javawind:22 如果想要提取数值16,响应提取的设置如下图所示。 通过正则表达式javawind:(.*)javawind:(.*),提取数据如下: 9 12 16 17 46 22 通过第2个匹配项,提取数据如下: 16 17 通过第1个表达式,提取数据如下: 16 示例三 例如,报文内容为:ababdacac。 如果响应提取设置如下图所示: 正则表达式(ab|ac)+,表示由多个ab或者ac匹配。 第几个匹配项:1,表示由ab匹配到的,也可以输入2,表示由ac匹配到的。使用1可以得到abab及子串ab,使用2可以得到acac及子串ac。 表达式取值:0,表示使用最大匹配串abab或者acac,1表示使用子串ab或者ac。 示例四 例如,被提取内容为:HTTP响应头的Content-Type。 正则表达式Content-Type: (.*)\r\n,注意冒号后面有一个空格,结尾有\r\n,是HTTP规范产生的。 第几个匹配项:1,因为只有一个(.*)。 表达式取值:1,取到希望得到的值。
-
操作步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待添加请求信息的用例。 在“用例步骤”页签中,选择待添加请求信息的用例,单击“添加请求”。 在“响应提取”页签,参照表1设置基本信息。 表1 响应提取参数 参数 参数说明 启用响应提取 启用响应提取后,如果同一用例中存在多个报文,通过正则表达式或JSON提取把前一个报文的输出提取出来,作后一个报文的输入。 变量名称 变量的名称,命名必须唯一,响应提取的值赋予此变量。 预期值 预期响应提取出的变量值。 开启后,会将响应提取到的值与预期值进行比对,如果不等则链接失败。 提取内容范围 响应提取内容的范围。 其中,“报文内容”、“头域”和“URL”可通过正则表达式进行内容提取。 正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 “()”表示提取,对于您要提取的内容需要用小括号括起来,每个“()”之间的内容表示一个子表达式。 完整的正则表达式由两种字符构成:特殊字符(special characters)称为“元字符”(meta characters);其他为“文字”(literal),或者是普通文本字符(normal text characters,如字母、数字、汉字、下划线)。元字符的说明请参见正则表达式元字符。 第几个匹配项 在正则表达式已提取的内容中,获取第几个匹配的内容,该参数值不可设置为0。 取值范围:正整数。 表达式取值 表示解析到的第几个子表达式的值。 取值为0:匹配整个正则表达式。 取值为1:匹配正则表达式的第一个子表达式即第一个“()”提取的内容。 取值范围:自然数。 通过“正则表达式”和“第几个匹配项”提取出内容后,再通过“表达式取值”获得最终的提取内容。 需获取的键名 输入需要获取的键名,仅在提取内容范围是json内的值时生效。 例:{"key":{"key1":"v1","key2":{"key3":"v3"},"key4":[{"key41":"v41","key42":"v42"},{"key41":"v43","key42":"v44"}]}},如果想取出"v42",则输入:key.key4[0].key42。 缺省值 正则匹配或JSON提取失败时,取的值。 条件表达式 与“需获取的键名”配套使用。 例如:{"key":{"key1":"v1","key2":{"key3":"v3"},"key4":[{"key41":"v41","key42":"v42"},{"key41":"v43","key42":"v44"}]}},如果需要表达:当key42=v42时,提取目标值v41;则在“条件表达式”框里输入:key.key4[].key42=v42,在"需获取的键名"框里输入:key.key4[].key41。 表2 常用正则表达式介绍 正则表达式 说明 示例 (\d+) 匹配非负整数 字符串: bTivm2wu9jih1LBKR4osZGrjjl 匹配结果: 2 9 1 4 ([A-Za-z]+) 匹配由26个英文字母组成的字符串 字符串: bTivm2wu9jih1LBKR4osZGrjjl 匹配结果: bTivm wu jih LBKR osZGrjjl ([A-Za-z0-9]+) 匹配由数字和26个英文字母组成的字符串 字符串: bTivm2wu9jih1LBKR4osZGrjjl:asdasd22 匹配结果: bTivm2wu9jih1LBKR4osZGrjjl asdasd22 (\w+) 匹配由数字、26个英文字母或者下划线组成的字符串 字符串: bTivm2wu9jih1LBKR4osZGrjjl:asdasd22 匹配结果: bTivm2wu9jih1LBKR4osZGrjjl asdasd22 ([\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+) 匹配email地址 字符串: bTivm2wu9jih1LBKR4osZGrjjl:abc@abc.com 匹配结果: abc@abc.com (可选)一个请求信息可包含1个或多个变量,如果您的请求信息需要添加多个变量,请单击“添加变量”,再设置变量的相关参数。 配置完成后,单击“保存”。
-
报告总览 测试报告说明如表1所示。 测试报告展现了测试过程中被测系统在模拟高并发用户的响应性能,为了更好阅读测试报告,请参考以下信息: 统计维度:测试报告的RPS、响应时间、并发等统计维度均为单个用例,如用例中有请求多个报文,只有在多个请求报文均正常返回会认为成功,响应时间也是多个请求报文的求和值。 响应超时:出现该情况是在设置的响应超时时间内(默认5s),对应的TCP连接中没有响应数据返回时,会将本次用例请求统计为响应超时。出现原因一般是被测服务器繁忙、崩溃、网络带宽被占满等。 校验失败:从服务器返回的响应报文不符合预期(针对HTTP/HTTPS默认的预期响应码为200),比如服务器返回404、502等。出现原因一般为高并发情况下被测服务无法正常处理导致的,如分布式系统中数据库出现瓶颈、后端应用返回错误等。 解析失败:响应报文已全部接收完成,但是部分报文丢失导致整个用例响应不完整,这种情况一般需要考虑网络丢包。 带宽统计:本报告统计的是性能测试服务执行端的带宽,上行表示从性能测试服务发出的流量,下行表示接收到的流量。如果是外网压测场景,您需要关注执行机的EIP带宽是否可以满足上行带宽的要求。而下行带宽需要关注单台执行机是否超过1GB。 RPS:Requests Per Second,每秒请求数。平均RPS=统计周期内的请求总数/统计周期。 SLA结果: 当测试用例配置SLA规则后,您可以在SLA报告中查看SLA规则是否被触发。SLA报告中,请求名称为测试用例中请求的名称,规则为已配置的SLA规则。平均值(运行中的任务显示为当前值)代表测试用例从开始压测到目前为止,业务指标的平均值,以及触发SLA规则的总次数。触发事件显示触发SLA规则的时间、请求名称和当前的触发次数。 如何判断被测应用优劣:根据应用本身的服务质量定义,理想状态是没有任何响应失败、校验失败的情况,如果有,需要在服务质量定义范围之内,通常情况下不超过1%,同时响应时间越低越好(2s内体验较好,5s内可以接受,超过5s则需要考虑优化),TP90、TP99指标可以客观反映出90%、99%用户的体验响应时间。 表1 测试报告说明 参数 参数说明 各项指标总量 所有用例各项指标总量的汇总。 最大并发:最大并发操作的虚拟用户数。 RPS:每秒请求数。 响应时间:指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间。 响应码:记录压测任务进行中响应码分布的情况。 带宽:记录压测任务运行所消耗的实时带宽变化。 SLA事件:SLA中定义的事件发生情况。 正常返回:如设置了检查点,检查点通过的用例响应数,如未设置默认为返回2XX的用例响应数。 异常返回:解析失败、校验失败、响应超时、3XX、4XX、5XX、连接被拒绝的用例响应数。 成功率:正常返回请求数/总请求数。 平均RPS 统计周期内的请求总数/统计周期。 平均RT 某一秒发出的所有请求的平均响应时间。 并发数 记录压测任务运行时,当前并发操作的虚拟用户数的变化。 带宽(KB/S) 记录压测任务运行所消耗的实时带宽变化。 上行带宽:从性能测试服务测试执行机往外发送出去数据的速度。 下行带宽:性能测试服务测试执行机接收到数据的速度。 响应状态分布 正常返回、异常返回、解析失败、校验失败、响应超时、连接被拒绝和其他错误的每秒处理用例数,该项指标与思考时间、并发用户、服务器响应能力均有关,比如思考时间为500ms,如果服务器对于当前用户的上个请求响应时间小于500ms,则该用户每秒请求2次。 正常返回:如设置了检查点,检查点通过的用例响应数,如未设置默认为返回2XX的用例响应数。 异常返回:解析失败、校验失败、响应超时、3XX、4XX、5XX、连接被拒绝的用例响应数。 解析失败:HTTP响应无法被正常解析的数量。 校验失败:如设置了检查点,检查点未通过的用例响应数,如未设置,返回不是2XX的用例响应数。 响应超时:在请求报文发送5S内未收到服务器响应的用例请求数量。 连接被拒绝:发送报文建立连接时,服务器拒绝连接数。 其他错误:不属于以上几种错误的数量。 响应码分布 1XX/2XX/3XX/4XX/5XX。 响应时间区间比例 用例的响应时间区间比例。 TP最大响应时间 指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取对应的百分比的那个值作为TPXX的最大响应时间。 TP50:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50的值。 TP75:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第75%的那个值作为TP75的值。 TP90:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第90%的那个值作为TP90的值。 TP95:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第95%的那个值作为TP95的值。 TP99:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99%的那个值作为TP99的值。 TP99.9:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99.9%的那个值作为TP99.9的值。 TP99.99:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99.99%的那个值作为TP99.99的值。
-
新增集群 在创建私有资源组时,会选择一个节点集群。如果业务需要多个集群或者不同区域的集群共同运行压测任务,可以新增集群并配置压力占比将压测任务动态分配到不同集群上。 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”。 在资源组列表中,单击待操作的资源组中的“资源调整”。 新增集群。 在“资源调整”对话框中,单击“新增集群”,参照表1设置基本信息,单击“确定”完成创建。 表1 新增集群 参数 参数说明 区域 在下拉框中选择已创建的CCE节点集群所在区域,可与当前CodeArts PerfTest所在区域不一致。 节点集群 在下拉框选择已创建的CCE节点集群。 执行节点 勾选执行压测的执行机,即在压测过程中能够提供自身性能数据的施压目标机器。 如果新增集群所在区域与当前CodeArts PerfTest区域不一致,即使用跨区域节点,那么该节点要有访问公网权限,可以通过绑定弹性IP或者使用NAT转换等方式获得访问公网权限。 该步骤可重复执行,新增多个集群。 配置压力占比。 新增集群后,在“资源调整”对话框中可以查看到当前私有资源组所有的节点集群,可动态调整不同集群的压力占比数据。 (可选)删除节点集群。 在“资源调整”对话框中可以查看到当前私有资源组所有的节点集群,单击待删除节点集群后的“删除”,根据系统提示执行删除操作。
-
扩缩容节点集群 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”。 在资源组列表中,单击待操作的资源组中的“资源调整”。 扩缩容节点集群。 扩容资源组:在“资源调整”对话框中,单击待修改资源组后的“扩缩容”,在“选择执行节点”对话框中,勾选当前已存在的执行节点+需要扩容的执行节点,单击“选择”。 减容资源组:在“资源调整”对话框中,单击待修改资源组后的“扩缩容”,在“选择执行节点”对话框中,勾选需要保留的执行节点,单击“选择”。
-
查看私有资源组信息 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”。 在资源组列表中,可查看到如下表所示的私有资源组信息。 表2 私有资源组信息说明 信息名称 信息说明 私有资源组名称 创建私有资源组时输入的名称。 私有资源组状态 运行中 异常 需升级 部署中 执行器数 占用执行器数/执行器总数。 单执行器支持并发:HTTP/HTTPS(5000),WebSocket(5000),MQTT(5000),JMeter(1000),HLS/RTMP/HTTP-FLV(1000)。 当前并发 当前私有资源组内所有节点集群当前并发相加的和。 调试节点 创建私有资源组时选择的调试节点。 执行节点 资源组内所有节点集群的执行节点。单击“更多”,可以查看到该资源组全部执行节点。 创建时间 私有资源组创建的时间。 修改时间 私有资源组最后一次修改的时间。
-
自定义JMeter安装包 如需切换JMeter的版本,可以自定义安装JMeter安装包来满足业务需求。 登录性能测试服务控制台,在左侧导航栏中选择“测试资源”。 按照业务需求,下载对应版本的JMeter安装包。 在资源组列表中,单击待操作的资源组中的“自定义JMeter安装包”,选择待安装的JMeter安装包导入文件,等待页面提示文件导入成功。当前支持tgz、tar.gz、zip格式的文件,版本号在5.2.1及以上且小于100M的JMeter安装包,并确保该安装包本地可执行。 (可选)删除JMeter安装包。 如提示文件上传失败,或需要重新上传JMeter安装包。可单击安装包后的,删除当前JMeter安装包。
-
IResultV1接口实现 package main import ( "fmt" "time" ) const ( InnerVarName = "__name" InnerVarGoroutineId = "__goroutine_id" InnerVarExecutorIndex = "__executor_index" InnerVarExecutorCount = "__executor_count" ) type IResultV1 interface { GetName() string GetUrl() string GetMethod() string GetRequestHeader() map[string]string GetRequestBody() string GetSentBytes() int GetResponseCode() int GetResponseHeader() map[string]string GetResponseBody() string GetReceivedBytes() int GetFailureMessage() string IsSuccess() bool GetBeginTime() int64 GetEndTime() int64 GetSubResults() []interface{} } //acquireResult generates root result. //just call one time on the main func and generate sub result using parent.addSub() func acquireResult(name string) *Result { result := &Result{} result.Name = name result.RequestHeader = map[string]string{} result.ResponseHeader = map[string]string{} result.ResponseCode = 200 result.Success = true result.BeginTime = time.Now().UnixMilli() result.EndTime = time.Now().UnixMilli() return result } type Result struct { Name string Url string Method string RequestHeader map[string]string RequestBody string SentBytes int ResponseCode int ResponseHeader map[string]string ResponseBody string ReceivedBytes int FailureMessage string Success bool BeginTime int64 EndTime int64 SubResults []interface{} SubIndex int } func (r *Result) GetName() string { return r.Name } func (r *Result) GetUrl() string { return r.Url } func (r *Result) GetMethod() string { return r.Method } func (r *Result) GetRequestHeader() map[string]string { return r.RequestHeader } func (r *Result) GetRequestBody() string { return r.RequestBody } func (r *Result) GetSentBytes() int { return r.SentBytes } func (r *Result) GetResponseCode() int { return r.ResponseCode } func (r *Result) GetResponseHeader() map[string]string { return r.ResponseHeader } func (r *Result) GetResponseBody() string { return r.ResponseBody } func (r *Result) GetReceivedBytes() int { return r.ReceivedBytes } func (r *Result) GetFailureMessage() string { return r.FailureMessage } func (r *Result) IsSuccess() bool { return r.Success } func (r *Result) GetBeginTime() int64 { return r.BeginTime } func (r *Result) GetEndTime() int64 { return r.EndTime } func (r *Result) GetSubResults() []interface{} { return r.SubResults } //begin records begin time, do not forget call this function to update func (r *Result) begin() { r.BeginTime = time.Now().UnixMilli() } //end records end time, do not forget call this function to update func (r *Result) end() { r.EndTime = time.Now().UnixMilli() } //addSub adds sub result to parent, call this function adding sub result always. //if name is not empty, renaming will be disabled func (r *Result) addSub(name string) *Result { if name == "" { name = fmt.Sprintf("%s-%d", r.Name, r.SubIndex) r.SubIndex++ } else { name = fmt.Sprintf("%s-%s", r.Name, name) } sub := acquireResult(name) r.SubResults = append(r.SubResults, sub) return sub } 表2 IResultV1接口结构说明表 名称 含义 补充说明 Name 请求名称 根result需使用内置参数__name设置。 Url 请求地址 - Method 方法 用于HTTP的POST,GET等。 RequestHeader 请求头 用于HTTP。 RequestBody 请求数据 建议不要记录请求较大的数据,例如上传文件,仅记录摘要即可。 SentBytes 发送字节数 - ResponseCode 响应码 记录响应状态,可以用于HTTP状态码或者自定义状态码,用于报告统计响应状态数量用于分析。 响应码范围:[100,599] ResponseHeader 响应头 用于HTTP。 ResponseBody 响应数据 建议不要记录响应较大的数据,例如下载文件,仅记录摘要即可。 ReceivedBytes 接收字节数 - FailureMessage 失败信息 - Success 是否成功 - BeginTime 请求开始时间 单位:毫秒 EndTime 请求结束时间 单位:毫秒 SubResults 子请求 当自定义请求需要多个子请求共同完成,需要使用该字段记录各个子请求执行情况。 SubIndex 子请求索引 当使用父Result的addSub方法生成子Result时,如果不为子Result自定义名称,将使用该字段自增产生索引用于生成子Result名称。
-
请求签名 func(map[string]string) interface{} 入参:性能测试服务内置参数以及自定义参数。 出参:interface需实现IResultV1接口,如有必要,请使用性能测试服务提供的IResultV1接口实现。 表1 性能测试服务内置参数 名称 含义 补充说明 __name 请求名称 - __goroutine_id 协程id - __executor_index 执行机索引 序号从0开始。 __executor_count 执行机总数 -
-
配置请求失败跳过 用例执行时,当请求失败时,用例不会在此抛出异常终止执行,而是会继续执行后面的请求。适用场景是某个请求的失败不能影响后面关键步骤的执行。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。 在“用例步骤”页签下,找到对应的请求(AW)。 单击请求右侧第二个按钮开关,配置当前AW是否失败跳过,默认配置为“否”。 是:配置请求失败跳过,请求失败不会中断用例执行。 否: 配置默认是请求失败不跳过,该请求失败会中断后面请求执行。 样例参考 请求aw-1配置了请求失败跳过,如果请求aw-1执行结果为失败,会跳过该请求失败,接着执行后面的请求aw-2。 图1 配置了请求失败跳过的AW
-
禁/启用用例请求信息 如果用例的某一个请求信息想要留存但不想被使用,可以使用禁用用例请求信息功能。如果想要恢复该请求信息的使用,可以再对其进行启用。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。 禁用用例请求信息。 在“用例步骤”页签中,单击待禁用的请求信息后的,对该请求信息进行禁用,不影响其他请求信息。 启用用例请求信息。 在“用例步骤”页签中,单击待启用的请求信息后的,对该请求信息恢复启用,不影响其他请求信息。
-
配置请求失败重试 用例执行时,当请求失败时,用例会根据失败重试的配置进行重试,重试次数和重试的间隔。适用场景是某个请求因网络、性能等问题导致执行结果失败,可配置重试增加容错。 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。 在“用例步骤”页签下,找到对应的请求(AW)。 在“检查点”页签,开启“启用结果检查”,进行失败重试配置。 样例参考 aw-1配置了请求失败重试,没有配置请求失败跳过。 如果请求aw-1执行成功,不会执行重试,接着执行后面的请求aw-2。 如果请求aw-1执行失败,请求aw-1按照检查点的配置进行失败重试,将进行3次重试,每次间隔3000ms。 在重试3次中,aw-1请求成功则退出失败重试,且aw-1请求结果是成功的,接着执行后面的请求aw-2。 如果重试3次全部失败,则aw-1结果为失败,且不会执行后面的请求aw-2,中断执行。 图2 请求aw-1配置了检查点
-
创建用例步骤 登录性能测试服务控制台,在左侧导航栏中选择“PerfTest测试工程”。 在待编辑PerfTest测试工程所在行,单击工程名称进入测试工程详情页面。 选择“测试用例”页签,在左侧“用例列表”下选择待配置的测试用例。 选择页面右侧的“用例步骤”,选择前置步骤或测试步骤配置。 前置步骤:每个执行线程中,仅执行一次。如无业务需求可以不添加。 测试步骤:测试用例的执行体,需要配置。 根据实际业务需求,选择添加请求、事务、数据指令、循环控制器、条件判断、集合点、并发权重控制器、吞吐量控制器。 支持同时添加请求、事务,也可以只添加其中之一。在实际使用过程中,数据指令、循环控制器、条件判断、集合点一般和请求联合使用。 添加请求的具体步骤请参考添加请求信息(报文)、添加请求信息(思考时间)、添加请求信息(响应提取)和添加请求信息(检查点)。 添加事务:已在事务库中存在事务模型。单击“添加事务”,勾选事务模型的名称,单击“确定”。创建事务模型的具体步骤请参考创建事务。 添加数据指令、循环控制器、条件判断或者集合点添加的具体步骤请参考添加数据指令、循环控制器、条件判断、集合点。 添加并发权重控制器或吞吐量控制器具体步骤请参考添加并发权重控制器、吞吐量控制器。 配置完成后,单击“保存”。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- ...
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333