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