请求连接组成部分:
请求地址:xxx.servce
请求设备:SN码(列表)
请求实参:token
请求体:
cmdStr: (命令)
TimeOut: 延迟时间
请求方式: Post
请求体类型: Conten-Type:application/json

返回结果:SN码,{返回js字符串} (一行一条数据,写入文件)

请求URL组成部分:

  1. http://【请求地址】/service/api/conf/debug/【设备SN】(URL可变参数)/exec_cli?access_token=【token值】
  1. {
  2. "cmdStr": 【命令】,
  3. "timeOut" : 【延迟时间】
  4. }

返回值存储格式:

  1. 请求连接中的SN 返回的json数据 【写入文件,一条记录一行】
  2. CAP70CB007243,{
  3. "beginRunningMillis": 1618235779749,
  4. "commandValues": {
  5. "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"
  6. },
  7. "commands": [
  8. "dev_config get -m 'noipdns' "
  9. ],
  10. "configMode": "CONFIG",
  11. "endTime": 0,
  12. "executeTimeMs": 170,
  13. "finishTimeMillis": 1618235779919,
  14. "inqueueTime": 1618235779550,
  15. "nextStep": 2,
  16. "operateId": 0,
  17. "operateType": "debug-execute_cli",
  18. "queueMs": 0,
  19. "requestParameter": "mode:CONFIG command:[dev_config get -m 'noipdns' ;]",
  20. "rpcLogId": 756915570,
  21. "rpcLogIndex": 1,
  22. "serverState": "SUCCESS",
  23. "serverType": "EXECUTE_CLI_COMMAND",
  24. "showResponse": false,
  25. "sn": "CAPL62Z00142C",
  26. "sync": true,
  27. "task2Head": false,
  28. "timeoutSecond": 3000,
  29. "waitingTimeMs": 532
  30. }

代码基于Python3开发,例如队列Queue在Python2是没有的。

Postman示例:image.png

整个的思路结构是:

1、抽离配置文件,例如一些需要组合的URL
2、如果没有配置文件,则会将变量加载到字典中
3、将配置文件中的可变集合读取并加载到队列中(如SN码)
4、多线程将请求信息重新组合,生成最终请求链接,并且按照Post请求
5、存储数据

常见问题:

1、缺库,报错缺少库,
a、使用pycharm控制台旁边的Terminal调出终端,执行 pip install 【报错库名】
image.png
需要安装配置pip,相关详细自行百度
b、pycharm设置中添加,目录在:File->Default Settings->Default Project->Project Interpreter 选择对应的python版本,旁边加号查找对应的库名添加即可。
image.png
2、报错库问题,但是已经安装了库,请将库卸载后重装,方法就自行百度了哈。

python打包exe文件

1、需要安装pyInstaller库,安装命令 pip install pyInstaller
2、执行打包命令:【需要在打包py文件的目录下,使用Terminal终端执行】

  1. pyinstaller -D xxxx.py # 基本打包,多文件【启动快,但是文件多】
  2. pyinstaller -F xxxx.py # 最基本打包 生成单文件【启动稍微慢一点,影响也不大,单文件exe
  3. pyinstaller -F -w xxxx.py # 去除启动的命令行窗口【如果没有设计UI的话,一般运行exe后都是弹出命令行显示控制台打印的输出信息 -w 可不显示命令行窗口】
  4. pyinstaller -F xxxx.py -i xxxx.ioc # 自定义设置exe图标,不在同级目录需要绝对路径
  5. pyinstaller -F xxxx.py -n xxxx【生成的文件名】 # 自定义生成exe文件的名称
  6. pyinstaller -F xxxx.py --clean # 清除之前的编译文件

多文件打包后:
image.png
单文件自定义图标后:
image.png

打包后会在原路径下生成dist目录,打包编译后的文件在该目录下。