记录和回放交互式终端会话
项目描述
Playitagainsam是一种用于记录和回放交互式终端会话的工具和相应的文件格式。它从Unix命令“script”和“ttyrec”以及Python工具“playerpiano”中汲取灵感。
有用功能包括
能够以模拟输入的方式回放,增强“交互性”
能够在多个终端中同步回放输出
目前还处于早期阶段,还有一些bug和容易崩溃。但我希望这些问题能尽快解决!
基本用法
使用附带的“pias”脚本或使用“python -m playitagainsam”的Python模块运行语法运行软件。
以如下方式记录会话
$ pias record <output-file>
这将使您进入shell并记录会话期间的所有输入和输出。退出shell后,所有活动都将写入输出文件,作为JSON文档。
以如下方式回放已记录的会话
$ pias play <input-file>
这将开始模拟原始shell的回放。按任何键进行输入,到达行尾时按“enter”键。
额外功能
Playitagainsam有一些额外功能,使其与类似解决方案区分开来。
多终端
在单个会话中,可以同时记录多个终端的活动,这对于例如在一个终端演示服务器进程,而在另一个终端演示客户端进程非常有用。可以这样将新的终端加入到现有的录制会话中
$ pias --join record <output-file>
手动输入或自动输入的选择
尽管默认的回放模式假设交互式输入,但pias也可以为您自动输入。它可以输入单个命令,但等待您手动触发每个换行符,就像这样
$ pias play <input-file> --auto-type
或者您可以让它自动输入所有输入,就像这样
$ pias play <input-file> --auto-type --auto-waypoint
这两个选项都接受一个整数值(以毫秒为单位),这将控制自动输入的速度。
预录回放还是实时回放?
默认回放模式输出原始终端会话的“预录”文本,没有副作用。然而,在演示过程中,副作用可能是有用的。
例如,当演示REST API时,演讲者可能希望使用浏览器展示API调用对服务的影响。或者演示的代码可能驱动一些其他非控制台输出,如可视化或游戏。
–live-replay选项将预录输入连接到实时shell,以实现实际实时输出和副作用。
$ pias play <input-file> –live-replay
此选项可以与之前的选项组合使用
$ pias play <input-file> –live-replay –auto-type –auto-waypoint
实时回放也适用于两个或更多连接的终端会话。
JavaScript播放器
有一个基于JavaScript的播放器,可以将录制会话嵌入到HTML文档中。这对于网站或基于HTML的演示非常有用。代码在这里
使用此代码的示例演示在这里
注意事项
使所有这一切都能正确运行可能很棘手!以下是一些您应该注意的事项
所有终端应使用utf8编码,否则您可能会看到奇怪的输出,甚至可能发生一些错误。
会话中的所有终端应具有相同的大小。这种限制在未来可能会取消。
实时回放选项有其特定的特点
使用–append开关创建的会话在第一个录制会话结束后不会继续。
有时按键会“弹跳”,并且会插入双字符。
某些实时回放输出序列可能比录制会话中的相应输出持续时间更长,并且会在等待下一个用户操作时被缓冲。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分布
构建版本
playitagainsam-0.6.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | caabc9d648941f5acf8f821057d352c2f8e3a8d86db96c20efbf08626ef65cc9 |
|
MD5 | 228f0a39a82afa6bbc0cacfeae44dcab |
|
BLAKE2b-256 | 83cb365a5c4abe8130555083cbe98fac51ec4cd6bc1db9ac523b8f0cb0142690 |