#13 楼 @zhangzhao_lenovo 另外 fiddler 里面劫持域名也可以写到配置里,这样方便不同域名的接口容错测试
#13 楼 @zhangzhao_lenovo 如果要简单,个人认为就用 json 文件对应一下特定 api 和 mock 就行了, 类似这种
[{
"apiName":"damnson",
"baseLink" :"xxx",
...
...
"mocks" : [mock1, mock2]
},
{
......
}
]
如果不增删改 mock 逻辑,核心代码不用动,就维护这个 json 就可以了。
#4 楼 @dengwei729 String[] groups
groups 是一个字符串数组
http://testng.org/javadocs/org/testng/annotations/BeforeMethod.html#groups--
java.lang.String[] groups
The list of groups this class/method belongs to.
不太懂 python 勉强看了下 git 的代码,是否可以再向上封装一层,一个域名定制一些 mock 方式(不用每次手工去输入),封装成一些类。然后把这些定制持续集成起来,最终实现共产主义
#16 楼 @seveniruby 可以的,人多了必须考虑。。 你想啊,个人中心有名字,邮箱,git, 有的还有公司,, 广告都可以精准投放咯
#13 楼 @seveniruby 恩,google 的玩意儿一般人没法作弊。 不过一直都想说,注册页面那个 “公开 Email” 的勾选框应该默认不勾选,很多人不会在意,直接注册。 后期用户量大了,这套系统又没有什么屏蔽机制,也可能是用户信息泄露的隐患吧。 纯属个人瞎想。
#7 楼 @seveniruby 这个一个小脚本就可以实现了吧。。
捐款的支付宝账号是什么!
时间成本投入不足 - 不可以多投入吗?
目标不清晰 - 不可以先做好调研和分析吗?
人员经验基本为零 - 不可以招募经验丰富的专业自动化测试人员吗?
迭代周期快 - 什么叫没有意义?
这两位见面就打,我怀疑他们其实是同一个人,只是患有精神分裂
What a kick ass cake!
#14 楼 @huangxiaojiao 只是看到你提及这个 Layout - org.apache.log4j.HTMLLayout . 就想起来以前曾用这个为基类重写方法,来作测试报告。
#12 楼 @huangxiaojiao 可以重写的
楼主这个可以贴个样表出来,顺便把 BasicExcelData 贴出来,大家给挖挖挖挖挖,看还能怎么进阶。
surely 如果有签 NDA 就不要冒险了
#17 楼 @wqq_helen 录制的时候要将代理打到 gatling 的监听端口上,所以要设置。运行的时候不需要。
#23 楼 @quqing 你看下是不是这意思。如果是,你可以用我这个代码去测试下。反正无论并发多少都不会出一点点问题。
public class Runner implements Runnable {
/**
*
* @param driver
* @param windowName
*
* 根据窗口名称切换窗口
*/
public void SwitchTo(WebDriver driver, String windowName) {
String currentHandle = driver.getWindowHandle();
Set<String> set = driver.getWindowHandles();
for (String s : set) {
if (currentHandle.equals(s)) {
continue;
}
driver.switchTo().window(s);
if (driver.getTitle().equals(windowName)) {
break;
}
}
}
@Override
public void run() {
System.setProperty("webdriver.chrome.driver",
"D:\\driver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
/**
* 访问百度,搜索百度
*/
driver.get("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=baidu&oq=target%3D%26quot%3B_blank%26quot%3B&rsv_pq=93fced2300007201&rsv_t=834bm%2B0f8imPuN4KHbbM%2B0TSEsXx%2B6VbKEccPsk9XSbHOF6PefPDYbGodZA&rqlang=cn&rsv_enter=0&inputT=1018&rsv_sug3=19&rsv_sug1=17&rsv_sug7=100&rsv_sug2=0&rsv_sug4=1018");
String newWindow = "//em[text()='百度']"; // 这是一个新窗口跳转 target='_blank'
//保证稳定性,人工加一些等待 2s
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
//什么都不做
}
/**
* 打开另一个百度
*/
driver.findElement(By.xpath(newWindow)).click();
//保证稳定性,人工加一些等待 2s
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
//什么都不做
}
/**
* 在第一个百度窗口点击Logo,也回到了首页。现在当前driver有两个完全一样的百度窗口在运行。
*/
driver.findElement(By.xpath("//a[@id='result_logo']")).click();
/**
* 百度首页的title
*/
String title = "百度一下,你就知道";
/**
* 输入框
*/
String input_xpath = "//input[@id='kw']";
//保证稳定性,人工加一些等待 2s
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
//什么都不做
}
String wHandler1 = driver.getWindowHandle();
System.out.println("第一个窗口句柄 " + wHandler1);
/**
* 在当前窗口的输入框先输入"第一个窗口"
*/
driver.findElement(By.xpath(input_xpath)).sendKeys("第一个窗口");
//保证稳定性,人工加一些等待 2s
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
//什么都不做
}
/**
* 切换到第二个窗口
*/
SwitchTo(driver, "百度一下,你就知道");
String wHandler2 = driver.getWindowHandle();
System.out.println("第二个窗口句柄 " + wHandler1);
//保证稳定性,人工加一些等待 2s
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
//什么都不做
}
/**
* 在当前窗口的输入框先输入"第二个窗口"。这部分完了你可以去检查一下,是不是N个driver都执行正确。
*/
driver.findElement(By.xpath(input_xpath)).sendKeys("第二个窗口");
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
//什么都不做
}
/**
* 切换回到第一个窗口
*/
driver.switchTo().window(wHandler1);
/**
* 关闭第一个窗口
*/
driver.close();
/**
* 切换到第二个窗口
*/
driver.switchTo().window(wHandler2);
driver.findElement(By.xpath(input_xpath)).sendKeys(" 你看看是不是只剩下我一个窗口了??");
}
public static void main(String[] args) {
Runner r = new Runner();
for (int i = 0; i < 5; i++) {
new Thread(r).start();
}
}
#21 楼 @quqing 兄弟,你可以写份简单的代码,我看一下。比如像如下这种代码,启动 N 个 driver 后,必定互相不干涉。你说的那种 driverA 打开 N 个浏览器窗口是什么场景,我不太理解,给点代码看看吧
public class Runner implements Runnable{
@Override
public void run() {
System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
String searchBox = "//input[@id='kw']";
driver.findElement(By.xpath(searchBox)).sendKeys("这是我要搜索的内容");
}
public static void main(String[] args) {
Runner r = new Runner();
for(int i=0; i< 5; i ++) {
new Thread(r).start();
}
}