RequestsLibrary支持并行执行套件和pabot?

2024-06-26 18:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我的项目使用RequestsLibrary进行接口自动化,所有接口调用共享一个会话,该会话是由[Create session]函数生成的会话。在

在此基础上,我们希望使用pabot来实现并发,我们希望使用的方法是:所有多线程共享一个会话以实现并发,因此[Create session]函数当前只被调用一次,然后所有线程共享该会话。在

在我的测试中,可以从多线程中检索会话,但是当调用接口时,发现其他线程接口请求失败:

错误消息:

KEYWORD RequestsLibrary . Get Request ${agent.session}, ${uri}, headers=${header}, timeout=${timeout}
Documentation:  
Send a GET request on the session object found using the

Start / End / Elapsed:  20181109 15:06:36.520 / 20181109 15:06:36.523 / 00:00:00.003
15:06:36.523    FAIL    Non-existing index or alias 'adminsession'.

所以我想问一下,我们是否支持并发场景?


Tags: the项目方法函数消息getrequestsession
2条回答

Pabot创建并行进程的方法是启动Robot框架的多个独立实例。在每个实例中,您都有一个单独的RequestLibrary实例化。你就不能分享这一次的结果了。在

虽然可以通过pabotlib从一个实例共享值到另一个实例,但这不适用于对象。通常一个对象可以被序列化成一个字符串,但是遗憾的是,RequestsLibrary所依赖的Requests模块不支持这一点。在

在我看来,最好的方法是通过pabotlib重用相同的cookie和其他特定于会话的变量,在会话之间重新创建相同的会话。在

为什么只创建一次会话? Pabot产生不同的进程,这些进程不能直接共享任何内容,因此您需要为每个进程创建一个会话,但基本上您要做的只是在安装套件或安装测试中添加测试所需的所有内容。 因此,每个进程始终可以使用该会话,并且它以具有相同配置但不完全相同实例的方式共享。希望有帮助。在

相关问题 更多 >