繁体   English   中英

在robotframework中锁定文件

[英]Locking a file in robotframework

我正在使用robotframework。 我正在使用pabot并行运行测试套件。

运行时,我需要确保一个进程一次可以访问一个文件,而另一个进程应等待该进程释放该文件。

我了解可以通过python中的多线程来完成。 我是python的新手。 我需要帮助来解决此问题。

机械手没有内置处理文件锁定的功能。 也没有内置的跨平台机制来锁定文件。 但是,有些外部软件包可以执行文件锁定。 例如, lockfile包看起来很合适

我建议在python中创建一个自定义关键字,该关键字在获取锁后进行读取。 如果您使用的是lockfile包,则可能看起来像这样:

# lock_keywords.py
from lockfile import LockFile

def read_file_with_locking(filename):
    lock = LockFile(filename)
    with lock:
        with open(filename, "r") as f:
            data = f.read()
    return data

然后,您将在如下测试中使用它:

*** Settings ***
| Library | lock_keywords.py

*** Test Cases ***
| Read a file, with locking
| | ${data}= | Read file with locking | /tmp/junk.txt
| | log | data: ${data}

我仅在Mac上对此进行了测试,方法是打开一个交互式python shell,并使用lockfile库获取对该文件的锁定,然后在另一个窗口中运行测试。 测试暂停,直到我在交互式会话中手动释放锁为止,此时它能够获取锁并读取文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM