跳转到主要内容

记录和回放交互式终端会话

项目描述

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的演示非常有用。代码在这里

https://github.com/rfk/playitagainsam-js/

使用此代码的示例演示在这里

https://github.com/rfk/talk-webapitesting/

注意事项

使所有这一切都能正确运行可能很棘手!以下是一些您应该注意的事项

  • 所有终端应使用utf8编码,否则您可能会看到奇怪的输出,甚至可能发生一些错误。

  • 会话中的所有终端应具有相同的大小。这种限制在未来可能会取消。

  • 实时回放选项有其特定的特点

    • 使用–append开关创建的会话在第一个录制会话结束后不会继续。

    • 有时按键会“弹跳”,并且会插入双字符。

    • 某些实时回放输出序列可能比录制会话中的相应输出持续时间更长,并且会在等待下一个用户操作时被缓冲。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分布

playitagainsam-0.6.0.tar.gz (16.3 kB 查看哈希值)

上传 源代码

构建版本

playitagainsam-0.6.0-py3-none-any.whl (18.1 kB 查看哈希值)

上传 Python 3

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面