阿梨喜欢吃榴莲 2024-02-08 10:31 采纳率: 0%
浏览 7

服务器多个浏览器实例

一个web项目部署在服务器上,用户上传脚本,点击运行按钮,可以运行脚本调用服务器上的浏览器(UI测试)。
现在有多个用户运行各自的脚本,调用服务器上的浏览器,然后登录到服务器上看浏览器运行情况,
怎么能知道哪个是自己脚本调用的浏览器呢?

这个项目是根据RobotFrameWork开发的,因为RF只能在自己电脑运行,所以想用web仿照RF开发一套,但是测试团队需要看到浏览器运行情况(不是看截图,是真实的运行),所以就不知道A、B同时运行脚本,然后到服务器看浏览器运行,怎么知道哪个浏览器实例是自己脚本调起来的

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-08 10:32
    关注

    引自免费微信小程序:皆我百晓生

    在基于Robot Framework开发的Web项目中,为了区分不同用户脚本调用的浏览器实例,你需要实现一个机制来标记和跟踪每个浏览器会话。以下是一个概念性的解决方案:

    1. 浏览器实例标识与关联
      • 当用户上传脚本并点击运行时,在启动新的浏览器实例前,为该请求生成一个唯一的ID(例如:用户ID + 时间戳)。
      • 将这个唯一ID与新启动的浏览器实例相关联,可以将此ID作为窗口标题的一部分,或者存储在全局变量中供后续查询。
    # 假设有一个用于启动浏览器的类或函数
    from selenium import webdriver
    
    def start_user_browser(user_id, script):
        unique_id = f"{user_id}_{get_timestamp()}"
        
        # 启动浏览器,并设置窗口标题包含唯一ID
        browser = webdriver.Firefox()
        browser.set_window_title(f"UserScript-{unique_id}")
        
        # 或者存储到全局字典中,键为unique_id,值为浏览器实例
        global BROWSER_INSTANCES
        BROWSER_INSTANCES[unique_id] = browser
        
        # 执行用户的脚本...
    
    1. 展示对应用户的浏览器实例

      • 在服务器端,当用户查看运行情况时,根据其当前登录状态获取对应的唯一ID列表。
      • 根据这些ID查询已存储的浏览器实例信息(如窗口标题、日志等),并在前端展示给相应用户。
    2. 前端页面设计

      • 前端页面应显示所有活动的浏览器实例,每个实例旁边标注其对应的唯一ID。
      • 用户可以通过筛选功能(如输入自己的ID部分)找到自己脚本所调用的浏览器实例。

    由于这是一个模拟解答,实际代码实现需要结合你的具体后端和前端框架结构进行调整。同时,考虑到安全性和资源管理,还需要确保:

    • 用户只能查看和操作他们自己的浏览器实例。
    • 浏览器实例在脚本执行完毕后能够正确关闭和释放资源。

    请注意,真实环境中可能需要通过更复杂的方法(比如Selenium Grid、WebDriverManager以及定制的日志系统)来管理和追踪浏览器实例。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月8日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器