两种web免登录自动化测试实现方法及比较

本文介绍了两种实现web自动化测试免登录的方法:一是利用selenium的Cookie类保存和加载浏览器cookie,二是通过第三方组件browsermob-proxy修改请求头添加cookie。分别阐述了每种方法的实现步骤,并比较了它们的优缺点。
摘要由CSDN通过智能技术生成

在做web测试过程中,通常需要先登录被测系统,有的网站登录需要验证码,这无疑增加了测试时间成本,怎么才能实现免登陆?今天我为大家介绍两种方法

一、通过selenium的Cookie类的相关操作,保存和加载浏览器的cookie,实现免登陆

通过查看selenium的api或源码,可以发现cookie类有以下字段,并有相应的set, get方法和多个重载的构造方法:


1.保存登录后的浏览器cookie,代码如下:

以登录M京东为例,可以通过输入账号和密码来登录,这里通过社交账号联合登录,登录成功后记录cookie到本地文件

@DataProvider(name="getQQ")
public Object[][] getQQ() {
return new Object[][] {
// {"979320969"},
{"3454608466"},
};
}

@Test(dataProvider="getQQ")
public void saveCookie_mjd(String qq) throws IOException {
driver.get("https://plogin.m.jd.com/user/login.action?appid=100");
driver.findElement(By.linkText("QQ")).click();
try {
driver.switchTo().frame("ptlogin_iframe");

} catch (NoSuchFrameException e) {
driver.findElement(By.className("ch_uin")).click(); //切换其他账号
driver.switchTo().alert().accept();
driver.switchTo().frame("ptlogin_iframe");

}
driver.findElement(By.id("nick_"+qq)).click();
driver.switchTo().defaultContent();
Assert.assertTrue(driver.getCurrentUrl().contains("https://m.jd.com"));


Set<Cookie> set = driver.manage().getCookies();
File cookieFile = new File("./cookies"+qq+".txt");
if (cookieFile.exists()) {
cookieFile.delete();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值