Selenium WebDriver和Apache JMeter
最近,在不同的项目中有一个使用两者并存的情况,所以做个备忘录。
Selenium WebDriver,在这里我指的是什么
使用Python编写的与UI不同的单元测试,通过unittest模块进行执行。
在setUp函数中创建webdriver.Firefox()实例,在tearDown函数中关闭它。
打开浏览器,跟随链接并点击,将文本输入到表格中,检查是否成功跳转到预期的页面。每次都会出现浏览器并显示崩溃画面,如果加入time.sleep()等操作,就能看到这个瞬间,因此相当“互动”。浏览器具有外部框架。
如果我在X系统上运行,至少一次从开始执行到立即切换到emacs并尝试按下ctrl-n(向下移动)时,火狐浏览器将出现并生成许多窗口,让我感到非常不开心。
要验证真正的功能非常好。对于使用UI点击的Selenium方面我不太了解。可能很方便。
我所指的是Apache JMeter
虽然有着相似的用途,但我还是使用HTTP请求链接并获取结果来进行比对。我是通过界面进行操作,但不知为何,我的方法非常低技术。
要在下一个页面使用Cookie,需要从响应中获取Set-Cookie并使用正则表达式进行处理。
想要按顺序下载某个 HTML 页面中的 mp3 文件,可以使用正则表达式确保所有文件都匹配,并在索引处指定 -1……唉——!!!
使用-1作为参数,这是事实。这样做可以将变量放入可以从ForEach函数调用的形式。
编写高级自定义过滤器的UI编辑器,以伪装为编程。希望在手机上获得JMeter编辑器,这是不可能的。#不可能
我对TCP/IP层级的连接进行了生猛的编辑,给人留下了非常深刻的印象。
通常文件中会进行修正关于”JMeter不是浏览器”这个常见误解。的确如此。虽然可以指定用户代理,但无法实时查看渲染结果。结果是以HTML的形式直接呈现。获取的数据是通过正则表达式获得的。哎,最好可以在浏览器中预览一下……
JMeter 写配置非常困难。我尝试过录制,但对于需要进行变量化处理的动态元素,还是得自己手动处理。真是累。
在疲累之后,JMeter可以让你对对方进行复仇。从本地开始十个客户端,通过AWS从多个主机开始一千个客户端。
在WebDriver中,我觉得很难进行与”负载”相关的设置。事实上,我认为这样的工具不适用于这种情况。
虽然我们谈论的都是HTTP连接,但我们也可以编写代码连接LDAP和SMTP端口。
想要的东西
希望能够编写WebDriver的设置后出现JMeter的设置。然而,尝试记录JMeter用户执行的功能给人留下了“相当困难”的印象。若有此功能,我希望能得到指导。
总结
虽然没有这样的东西,但我认为如果有一个能模拟用户行为的工具书的话,我会买。