我有一个自动化聊天应用程序的任务。我正在使用Webdriver和Java。两个不同的用户将在两个不同的浏览器上同时登录并发起聊天。如果有人能提供一些建议,我将不胜感激。如何使用Selenium/Webdriver自动化聊天应用程序?
回答
如果你不必在同一个浏览器上测试它,那么请参阅这篇文章,了解如何打开多个浏览器窗口进行测试 - How to switch instances in WebDriver。
它工作的任何示例代码?,我有相同的情况来测试一个聊天应用程序。 – sasikumar
您有两个担心需要担心。第一个是确保你为每个用户使用不同的浏览器,第二个是同时运行这两个用户。有几种不同的方法可以完成它们,所以我会分别查看它们。
管理两个浏览器
的第一部分,即开口的两个浏览器,并不太难;您可以为每个对象创建一个单独的WebDriver对象。您可能需要使用两个不同的浏览器,但是,以避免任何形式的会话共享问题:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
WebDriver user_1 = new FirefoxDriver();
WebDriver user_2 = new ChromeDriver();
如果您需要打开同一浏览器的两个实例,你最好的选择是使用Selenium Grid托管您所需浏览器,然后创建远程连接到他们:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
URL server = new URL("http://your-server-location.com");
WebDriver driver = new RemoteWebDriver(server, capabilities);
如果你不想建立自己的硒网格,您可以使用服务像Sauce Labs来管理你(和也给你一个简单的添加额外测试平台资源的方式)。
管理两个用户同时
这听起来像你可以有一个测试类表演又将对相关webdriver的每个动作。使用类似Page Object Model的东西来提供表示页面的服务对象,您也可以传递WebDriver的一个实例。然后,您可以更加流利地表达你的测试逻辑而不是处理不同webdrivers和元素:
public class Chatsite{
public WebDriver driver;
private WebElement talkbox;
private WebElement chatlog;
private WebElement sendbutton;
public Chatsite(WebDriver passed_in_driver){
driver = passed_in_driver;
talkbox = driver.find_element("name", "talkbox");
sendbutton = driver.find_element("name", "send");
chatlog = driver.find_element("name", "chatlog");
driver.get("http://www.yoursite.com");
}
public void say(String string_to_type){
talkbox.send_keys(string_to_type);
sendbutton.click();
}
public void sees_in_the_chatlog(String expected_content){
String current_chat_text = chatlog.getText();
assertTrue("Couldn't find content", current_chat_text.contains(expected_content));
}
}
#Now, in your tests
#Name your users so it's easier to keep track of them
Chatsite david = Chatsite.new(user_1);
Chatsite susan = Chatsite.new(user_2);
david.say("Isn't it a fine day?");
susan.sees_in_the_chatlog("Isn't it a fine day?");
susan.say("If you're going to talk about the weather I'm failing this test case");
## And so on in that fashion
谢谢你的建议。我在做这个工作。但是,两个聊天窗口作为不同的Web窗口打开,我无法选择第二个用户的窗口,因此无法在此处声明消息到达。任何帮助? – user1728406
您是否在Windows中使用了两个不同的WebDriver对象? –
- 1. 如何使用硒与硒的自动化移动聊天应用程序?
- 2. 如何使聊天应用程序,一对一聊天UI
- 3. 使用AMS.Web.RemoteScripting.dll聊天应用程序
- 4. 使用Pubnub的聊天应用程序
- 5. 使用django聊天应用程序
- 6. Android聊天应用程序
- 7. JavaFX聊天应用程序
- 8. ASP.NET聊天应用程序
- 9. 移动应用程序聊天集成
- 10. 如何使聊天应用程序滚动?
- 11. 如何在JSP聊天应用程序中使用Comet
- 12. 如何使用facebook api php建立聊天应用程序?
- 13. 如何在聊天应用程序中使用Dhtmlx消息
- 14. 如何在ios聊天应用程序中使用Web Socket?
- 15. EventMachine:如何使用Rails应用程序构建聊天系统
- 16. 如何使用Servlets和JSP创建聊天应用程序
- 17. 如何在j2me中使用WAP开发聊天应用程序?
- 18. 如何测试聊天在Quickblox聊天应用程序适用于iOS
- 19. 如何启动WCF语音聊天应用程序?
- 20. Java单线程聊天应用程序
- 21. C#TCP聊天应用程序线程
- 22. 聊天应用程序 - Socket.IO/Angular/MongoDB - 不显示聊天和聊天记录
- 23. 在聊天应用程序中发送多聊天通知
- 24. 如何自动化Flex应用程序?
- 25. 聊天程序自动关闭
- 26. 如何使聊天应用程序兼容iPhone和Android设备?
- 27. 使用VBScript自动化应用程序
- 28. 使用COM自动化应用程序
- 29. Java套接字聊天应用程序
- 30. Android聊天应用程序开发
什么是你想要的应用程序实现自动化?你能否提供网址... – Vinay
嗨维奈,我非常抱歉,因为我无法提供你的网址,因为它对我们公司来说是非常保密的。例如,只需要一个GTalk聊天应用程序的例子。我需要自动化两个用户将使用它的方式。 – user1728406