【发布时间】:2011-02-15 11:22:29
【问题描述】:
我有一个需要同时测试功能和性能的 Web 应用程序,我们计划使用的部分测试套件已经用 Python 编写。当我第一次写这篇文章时,我使用 mechanize 作为我的网络抓取方式,但对于我想要做的事情来说,它似乎太笨重了(或者我错过了一些东西)。
我正在尝试做的基本布局如下。都是对象。
- 用户有通讯(曾经是我的东西和机械化之间的接口)
- Comm 有浏览器(包含我的 CookieJar、urllib2 和 BeautifulSoup 对象,以前是机械化的)
- 浏览器有表单(过去是机械化处理的)
现在,就线程而言,我已经把它记下来了。将根据需要在处理 GIL 和运行单独的 Python 实例之间进行调整,但会采纳建议。
所以我需要做的是让用户点击应用程序并执行各种操作(登录、填写表单、提交表单以进行处理等),同时不要让测试框尖叫得太大声。我目前的机械化问题似乎是 RAM。
导致 RAM 问题的部分原因是需要为每个用户提供单独的浏览器实例,以防止每次我对不同的用户执行某些操作时覆盖 JSESSIONID cookie。
其中大部分可能看起来微不足道,但我正在尝试在这里运行数千个线程,所以微小的调整可能意味着很多。任何意见表示赞赏。
【问题讨论】:
标签: python automated-tests web-scraping urllib2 mechanize-python