Otii自动化工具箱
所有以下功能均需要Otii 自动化工具箱许可证(Otii Automation toolbox)。Otii 自动化工具箱许可证是一款软件许可证,通过脚本功能增强Otii软件能力,可根据项目需求实现测量自动化。
该工具箱具备以下特性:
Otii自动化工具箱许可证特性:
- 绑定用户而非特定硬件设备
- 可共享;用户可与他人共享许可证,但每次仅限单人使用。
用户还可配置许可证池,实现自动化环境中自动共享。使用共享池时,测试脚本可设置为等待许可证释放后再执行。
Otii TCP 服务器
- 通过 Otii TCP 服务器 API,可从其他应用程序控制 Otii。
- 使用此 API,您可在任何支持标准 TCP 套接字的应用程序中控制 Otii。
- Otii 服务器功能同时存在于Otii 3 桌面应用和Otii 服务器应用中。两者不可在同一台计算机上同时运行。
- 在 Qoitech 的Github页面,用户还能找到适用于 Python、C#、Java 和 Matlab 等主流语言的封装库。
Otii 服务器
命令行界面
用户也可以通过 otii_server(Otii 的命令行版本)启动 TCP 服务器。
该服务器已打包在应用程序中。若需查找系统中的具体位置,请在 Otii 桌面应用 中选择 帮助(Help) › 查找 otii_server(Find otii_server)。
若在运行 otii_server 时添加 --help 参数,将显示所有可用选项:
# otii_server --help
Options:
-V, --version output the version number
-v, --verbose verbose output
-c, --config <config-file> configuration file
-h, --help display help for command要开始运行服务器,运行该命令:
# otii_server服务器默认监听主机地址为 127.0.0.1 和端口 1905。若需更改默认设置或添加代理配置,请创建 config.json 文件:
{
"tcpserver": {
"host": "127.0.0.1",
"port": 1907
},
"proxy": {
"host": "192.168.1.1",
"port": "8080",
"auth": {
"username": "johndoe",
"password": "mypassword"
}
}
}以及使用以下命令开始运行服务器
# otii_server --config config.json服务器将持续运行,直至用户按下 Ctrl-C 即会停止。
在未来的Otii软件版本中,Otii将随附工具,使用户能够将otii_server 作为 Windows 服务运行,或在 Ubuntu 和 macOS 中作为守护进程运行。
用户管理
桌面应用程序中的用户管理
在此处了解更多关于在 Otii 3 桌面应用中登录和预定许可证的信息:
- 用户管理 (User management)
测试脚本中的用户管理
在用户管理的测试脚本中,可以直接使用TCP-API:
#!/usr/bin/env python3
'''
If you want the script to login and reserve a license automatically
add a configuration file called credentials.json in the current folder
using the following format:
{
"username": "YOUR USERNAME",
"password": "YOUR PASSWORD"
}
Alternatively you can set the environment
variables OTII_USERNAME and OTII_PASSWORD.
'''
from otii_tcp_client import otii_client
def my_test(otii):
# INSERT TEST CODE HERE
def main() -> None:
# Connect and login to Otii 3
client = otii_client.OtiiClient()
with client.connect() as otii:
my_test(otii)
if __name__ == '__main__':
main()client.connect() 被用于连接、登录以及预定许可证。
- 若 TCP 服务器尚未登录,将从当前目录的
credentials.json文件中读取凭证,或从环境变量 OTIIUSERNAME 和 OTIIPASSWORD 中获取。 - 若未预定自动化工具箱许可证且许可证池里有可用许可证,则会自动预定。
- 默认仅尝试预留自动化工具箱许可证。若需同时预留其他工具箱许可证,请将所需许可证全部添加至 licenses 参数:
client.connect(licenses = [ 'Automation', 'Battery' ])- 断开与Otii的连接时,所有被自动预定的许可证都将被释放。如果连接方式登录进了系统,那么此时也会退出登录。
- 如果用户想要手动预定某一个工具箱,请将许可证参数设置为空数组:
#!/usr/bin/env python3
from otii_tcp_client import otii_client
# Connect and login to Otii 3
client = otii_client.OtiiClient()
with client.connect(licenses = []) as otii:
# List all licenses
licenses = otii.get_licenses()
for license in licenses:
items = [
f'{license["id"]:4d}',
f'{license["type"]:12}',
f'{license["reserved_to"]:15}',
f'{license["hostname"]}'
]
print(' '.join(items))
# Reserve a license
otii.reserve_license(licenses[0]["id"])
# INSERT TEST CODE HERE
# Return license
otii.return_license(licenses[0]["id"])Python工具中的用户管理
用户可以通过命令行使用我们的Python模块进行用户管理。安装该模块的命令如下:
python3 -m pip install --upgrade otii_tcp_client然后使用 otii_control 工具进行用户管理:
python3 -m otii_tcp_client.otii_control --help
usage: otii_control.py [-h] {login,logout,list-licenses,reserve-license,return-license} ...
Otii Control
options:
-h, --help show this help message and exit
commands:
{login,logout,list-licenses,reserve-license,return-license}
login Log in to Qoitech server
logout Log out from Qoitech server
list-licenses List all available licenses
reserve-license Reserve license
return-license Return license以下是一个示例bash脚本:
#!/usr/bin/env bash
python3 -m otii_tcp_client.otii_control login --username johndoe --password mypassword
python3 -m otii_tcp_client.otii_control reserve-license --id 1234
./my_test.py
python3 -m otii_tcp_client.otii_control return-license --id 1234
python3 -m otii_tcp_client.otii_control logout