一尘不染

使用Selenium测试Facebook Connect应用程序?

selenium

有没有人有使用Selenium自动测试使用Facebook Connect进行用户登录的Web应用程序的经验?您有任何建议的技巧或方法吗?


阅读 224

收藏
2020-06-26

共1个答案

一尘不染

取决于你想做什么?

  1. 您会使用真实的Facebook用户(由Facebook验证电话)吗?

最安全,最可靠的方法,但是很难( 不可能 )收集“真实”用户(FB验证的电话)。

在定义用户/联系细节方面,例如教育历史,工作历史,姓名,年龄等(特别是如果您无权访问所有“真实” facebook帐户)。

  1. 为测试应用而创建的虚假Facebook用户(未经Fb验证)?

可能是最容易设置的,因为它们都是假用户,不需要电话验证(带有FB)。但是需要为所有用户创建电子邮件ID。

即使连接信息可以根据您的喜好进行定制。主要弊端之一(这已经发生在我身上)是,如果Fb检测到该用户不合法,FB将冻结所有帐户。眨眼间,所有您的Fb
用户特定的
自动化测试都将变得毫无用处。而且您无能为力(除非您计划建立一个全新的电话连接来验证这些帐户,没有Google号,没有Skype,不允许使用基于IP的电话。FB对此非常严格)。同样,一个号码只能授权1个帐户。

  1. 您会使用Facebook API创建Fb测试用户吗?

可能是使用Facebook连接测试应用程序的理想方式(根据FB)。单击此处以获取有关如何使用它的文档。

它可能看起来很简单,但是它有它的缺点(主要缺点)。非常不可靠,API会在10%到20%的时间内返回错误,而在其他时间则极慢。如果放错了一次,则无法获取FB测试用户的密码。连接信息无法轻松自定义。设置某件东西需要一定的努力,但不能确保每次都能正常工作。

我个人选择了第二种选择。Facebook基于多个ip上的并行登录来检测用户的合法性(我想)。我有运行在各种服务器上的硒RC,它们并行运行这些测试,这可能会引发危险信号。因此,我只是以更有组织的方式安排这些脚本,以避免登录重叠。

我希望在这个冗长的解释中找到答案。:)


对于perl实现-

$sel->start();
$sel->open_ok("$URL");
$sel->set_speed("500");
$sel->click_ok("//img[\@alt='Facebook']",'User clicks on Facebook Login');
$sel->wait_for_pop_up_ok("", "30000",'Facebook Login Popup Loading');
$sel->select_pop_up("null");    
$sel->type_ok("email", "email\@email.com",'User enters Facebook credentials - Username');
$sel->type_ok("pass", "password",'User enters Facebook credentials - Password');
$sel->key_press("pass", "\\13",'User returns Facebook Login credentials');
$sel->select_window("null");
2020-06-26