解码器测试指南
该文档的目标为协助开发者完成集成加载器后进行本地测试
- 根据能力实际实现修改并保存配置文件xtest.toml,修改原则和常用模块见下方。
- 在xtest目录下,执行./xtest 即可本地执行加载器测试
xtest.toml修改原则
对于测试工具,配置文件,一般情况下,不需要进行大幅度的删除修改,只需要进行需求调整对应的部分:
1.对于指定字段保留,自定义字段可随意删除增加,判断方式是自定义字段用“”标识出来,
2.最小限度修改,根据提供的测试配置文件,仅修改自己需要模块,其他部分不动,例如会话模式下,传入切片大小,一般不需要修改
3.实现功能为主,测试工具的目的是快速察觉是否能够联通整个加载器链路是否能通,因此不必纠结字段参数修改造成的影响
常用修改模块如下
服务组件名及对应接口
修改[xtest]内的taddrs , 值为组件名@IP:port 修改[svcMode]内的service字段,值为部署的服务名
测试并发及总次数
按需修改[svcMode]内的multiThr(并发数),loopCnt(请求总次数)
请求模式
[svcMode]内的sessMode,true:会话模式 false:非会话模式
功能参数对
修改[parameter]内的键值对, 若不需要传入功能参数对信息,则不写键值对,[parameter]字段保留
传入参数
修改[data]内指定的输入输出字段描述,该字段必须保留payload与expect字段
输入描述字段
修改inputSrc的值,值为指定输入文件的路径 修改sliceOn的值,值为切片开关, false:关闭切换, true:开启切片,非会话模式关闭,会话模式打开 修改name的值,值为插件内获取的对应pDataList内key 修改type的值,值为插件内获取的对应pDataList内type 修改describe的值,值为插件内获取的对应pDataList内desc
输出描述字段
修改name的值,对应输出的pDataList的key 修改type的值,对应输出的pDataList的type 修改describe的值,对应输出的pDataList的desc
附:配置文件内容
[xtest]
taddrs="AIservice@127.0.0.1:5090" # 指定服务名与对应的ip地址
trace-ip = "172.16.51.13" # trace日志地址
[svcMode] # 测试工具启动时的基本配置,包括并发,路数等
service = "AIservice" # 请求目标服务名称, eg:sms
svcId = "s12345678" # 服务id
timeout = 1000 # 服务超时时间, 对应服务端waitTime
multiThr = 50 # 请求并发数
loopCnt = 100 # 请求总次数
sessMode = false # 服务请求模式. true:会话模式 false:非会话模式
linearMs = 5000 # 并发压测线性增长区间,单位:ms
perfOn=false # 是否开启性能测试,性能测试总次数,输出为时延结果,默认不开启功能
perfLevel=1 # 非会话模式默认0
#会话模式0: 从发第一帧请求数据到接收最后一块响应结果的时延
#会话模式1:首结果(发送第一帧请求数据到接收第一块响应结果的时延)
#会话模式2:尾结果(发送最后一帧请求数据到收到最后一块响应结果的时延)
[header] # 平台控制参数,不需要修改
"appid" = "100IME" # 平台控制参数
"uid" = "1234567890"
[parameter] # 用户传递的功能参数对,在会话模式wrapperCreate,非会话模式wrapperExec的传入参数pParamList内获取
"ctrl" = "hahatestzsli" # 用户功能参数
[data] # 用户传入参数,根据需求编写参数,输入参数,在会话模式wrapperWrite,非会话模式wrapperExec的传入参数 # pDataList内获取
payload = "data1;data2" # 输入数据流键值对,多个数据流以";"分割,如"data1;data2",值为配置文件内对应数据输入描述字段
expect = "result" # 输出数据流键值对,多个数据流以";"分割
[data1] # 输入数据流data1描述
inputSrc = "./image" # 上行数据流数据源, 配置文件路径(配置为目录则循环读取目录中文件),当需要输入非文件,需要将非文件信息转换成文件信息,例 # 如文本信息,创建文件写入数据,在此配置文件路径
sliceOn = false # 切片开关, false:关闭切换, true:开启切片,非会话模式关闭,会话模式打开
sliceSize = 1280 # 上行数据切片大小,用于会话模式: byte
interval = 40 # 上行数据发包间隔,用于会话模式: ms. 注:动态校准,每个包间隔非严格interval
name = "input1" # 输入数据流data1对应的key值
type = "image" # 数据类型,支持"audio","text","image","video"
describe = "encoding=jpg" # 数据描述信息,多个描述信息以";"分割,如:"k1=v1;k2=v2"
# 图像支持如下属性:"encoding", 如"encoding=jpg"
[data2] # 输入数据流data1描述
inputSrc = "./image" # 上行数据流数据源, 配置文件路径(配置为目录则循环读取目录中文件),当需要输入非文件,需要将非文件信息转换成文件信息,例 # 如文本信息,创建文件写入数据,在此配置文件路径
sliceOn = false # 切片开关, false:关闭切换, true:开启切片,非会话模式关闭,会话模式打开
sliceSize = 1280 # 上行数据切片大小,用于会话模式: byte
interval = 40 # 上行数据发包间隔,用于会话模式: ms. 注:动态校准,每个包间隔非严格interval
name = "input1" # 输入数据流data1对应的key值
type = "image" # 数据类型,支持"audio","text","image","video"
describe = "encoding=jpg" # 数据描述信息,多个描述信息以";"分割,如:"k1=v1;k2=v2"
# 图像支持如下属性:"encoding", 如"encoding=jpg"
[result] # 输出数据流描述
name = "result" # 输出数据段名称,与接口定义部分保持一致
type = "text" # 输出数据类型,支持"audio","text","image","video"
describe = "encoding=utf8" # 数据描述信息,多个描述信息以";"分割
# 文本支持如下属性:"encoding","compress", 如"encoding=utf8;compress=gzip"
[downstream] # 下行数据流存储输出
output = 0 # 输出方式: 0:输出至公共文件outputDst 1:以独立文件形式输出至目录outputDst(文件名:sid+**) 2:输出至终端
outputDst = "./log/result" # 响应数据输出目标, 若output=0则配置目录, output=1则配置文件
[log]
file = "./log/xtest.log" # 日志文件名
level = "debug" # 日志打印等级
size = 100 # 日志文件大小
count = 20 # 日志备份数量
async = 0 # 异步开关
die = 30
[trace]
able = 0 # 是否开启trace日志