请求连接组成部分:
请求地址:xxx.servce
请求设备:SN码(列表)
请求实参:token
请求体:
cmdStr: (命令)
TimeOut: 延迟时间
请求方式: Post
请求体类型: Conten-Type:application/json
返回结果:SN码,{返回js字符串} (一行一条数据,写入文件)
请求URL组成部分:
http://【请求地址】/service/api/conf/debug/【设备SN】(URL可变参数)/exec_cli?access_token=【token值】
{
"cmdStr": 【命令】,
"timeOut" : 【延迟时间】
}
返回值存储格式:
请求连接中的SN码 , 返回的json数据 【写入文件,一条记录一行】
CAP70CB007243,{
"beginRunningMillis": 1618235779749,
"commandValues": {
"dev_config get -m 'noipdns' ": "{\"currentTime\":\"1616403838\",\"configTime\":\"1616403838\",\"version\":\"1.0.0\",\"user\":\"vippc.tn@gmail.com\",\"wan\":\"wan\",\"configId\":\"1616403838\",\"pass\":\"thanhhoa\",\"hostname\":\"hiephuong2.ddns.net\"}\n"
},
"commands": [
"dev_config get -m 'noipdns' "
],
"configMode": "CONFIG",
"endTime": 0,
"executeTimeMs": 170,
"finishTimeMillis": 1618235779919,
"inqueueTime": 1618235779550,
"nextStep": 2,
"operateId": 0,
"operateType": "debug-execute_cli",
"queueMs": 0,
"requestParameter": "mode:CONFIG command:[dev_config get -m 'noipdns' ;]",
"rpcLogId": 756915570,
"rpcLogIndex": 1,
"serverState": "SUCCESS",
"serverType": "EXECUTE_CLI_COMMAND",
"showResponse": false,
"sn": "CAPL62Z00142C",
"sync": true,
"task2Head": false,
"timeoutSecond": 3000,
"waitingTimeMs": 532
}
代码基于Python3开发,例如队列Queue在Python2是没有的。
Postman示例:
整个的思路结构是:
1、抽离配置文件,例如一些需要组合的URL
2、如果没有配置文件,则会将变量加载到字典中
3、将配置文件中的可变集合读取并加载到队列中(如SN码)
4、多线程将请求信息重新组合,生成最终请求链接,并且按照Post请求
5、存储数据
常见问题:
1、缺库,报错缺少库,
a、使用pycharm控制台旁边的Terminal调出终端,执行 pip install 【报错库名】
需要安装配置pip,相关详细自行百度
b、pycharm设置中添加,目录在:File->Default Settings->Default Project->Project Interpreter 选择对应的python版本,旁边加号查找对应的库名添加即可。
2、报错库问题,但是已经安装了库,请将库卸载后重装,方法就自行百度了哈。
python打包exe文件
1、需要安装pyInstaller库,安装命令 pip install pyInstaller
2、执行打包命令:【需要在打包py文件的目录下,使用Terminal终端执行】
pyinstaller -D xxxx.py # 基本打包,多文件【启动快,但是文件多】
pyinstaller -F xxxx.py # 最基本打包 生成单文件【启动稍微慢一点,影响也不大,单文件exe】
pyinstaller -F -w xxxx.py # 去除启动的命令行窗口【如果没有设计UI的话,一般运行exe后都是弹出命令行显示控制台打印的输出信息 -w 可不显示命令行窗口】
pyinstaller -F xxxx.py -i xxxx.ioc # 自定义设置exe图标,不在同级目录需要绝对路径
pyinstaller -F xxxx.py -n xxxx【生成的文件名】 # 自定义生成exe文件的名称
pyinstaller -F xxxx.py --clean # 清除之前的编译文件