- 浏览: 13992 次
最新评论
文章列表
很久不更新博客了,这次大概说一下C#中的Send WebRequest,众所周知,.NET网络编程在测试中是非常常见的,具体来说,比如我们如果测试一个API,通过Send WebRequest的方式来进行API层面的功能测试,然后用Selenium完成前端的验证,这种模式应该说是比较方便而通用的,具体以其中最常见的HTTP request为例,当我们需要传输数据时,需要
1)地址:Address作为Webrequest参数实例化,然后设定相应属性,比如Method(Get还是Post等等)
2)数据:Data作为HttpRequest的数据流写入:
XmlResponse = null; ...
相信用过Selenium webdriver的相信对Actions类并不陌生。测试的时候,经常我们在做鼠标移动到某个元素的时候,需要用到Actions类中的moveToElement方法,在此简单小结一下,
1. 控制元素位移相关:
moveToElement相关
Try to move mouse over the object element:
Actions A1=new Actions(driver);
WebElement obj=driver.findElement(By.xpath("//*[@text='Family, identity']") ...
一. 关于隐藏元素,
相信大家都碰到过定位一个当前hidden的元素。看到了很多方法,先总结一下,比较通用的肯定还是用JavascriptExecutor接口的方法了:
JavascriptExecutor js = (JavascriptExecutor) driver;
String myjs="document.getEleme ...
关于新窗口弹出问题,我们往往需要switch方法去切换得到新窗口的值,而如何判断和新窗口对比之后能正确切换,则需要我们用getWindowHandles()方法,然后再foreach它们,具体实现如下:
String winHandleBefore = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
for(String s: handles)
{
if (s.equals(winHandleBefore))
...
相信大家都遇到过这样的情况:进到一个页面,点击windows组件上传文件=》popup弹出=》选择文件=》回到原popup页面=》点击上传=》progress bar开始启动,需要等待progress bar消失=》上传成功
其中有很多点都是比较让人头疼的,比如文件上传的控制,判断元素的出现时间,progress bar的check处理等待,在此我仅总结一下几个关键点的方法,希望对初学者有所帮助:
1. 先说文件上传popup部分:
很多popup弹出来需要定位时,切换到该frame之后再进行操作,老生常谈,但是还是很多人在很多情况下忽略了,没办法,做测试就是要注意细节:
driver.sw ...
之前在数据篇介绍了Dataprovider,之后自己看了一下,觉得还是有些实例会可读性强一些。关于数据读取,我以Excel为例,介绍一个自己项目中的方法,以做补充:
// CMDNumber和method是读取参数,前者用于定位Excel的sheet,后者用于定位Cell坐标
public String[][] getExcel_Step2(String CMDNumber, String method)
throws BiffException, IOException
{
//读取指定路径的Excel数据文档,得到参数CMDNumber并依此对应到相应的sheet在Ex ...
关于TestNG数据驱动的优势我想很多文档,教程已经说了很多遍了,而它提供的参数化让我们在测试项目可以灵活根据需求建立不同的dataprovider来提供数据,而真正实现数据,页面,测试彼此独立而又有机结合的可能性。
具体说来,数据的组织形式多种多样,TestNG提供的dataprovider我们可以用来进行数据处理,或者直接编辑。实例一:直接编辑
@DataProvider(name="CMD")
public Object[ ][ ] CMD_data() throws BiffException, IOException
{
Ob ...
众所周知,在基于项目考虑的话,selenium在Testng中的不同API,方法和annotations在测试class中会被频繁调用,而如果用页面封装,例如PageFactory的话,可以大大简化测试用例中的方法调用,并且命名规则也可以得到统一规范,之前看到一个selenium教程,还很不错,在此推荐一下:
http://www.seleniumcn.cn/read.php?tid=8003
在视频中的方法就不赘述了,下面我们看一个典型的传统TestNG case,初学者可能比较多的使用IDE录制工具,然后再补充进一些个人方法和API的应用等,但这样一来,显然不利于长期维护,也会降低可 ...
Selenium等待及时间控制浅谈
- 博客分类:
- Selenium
关于时间控制,我想通常最常见到的就是thread.sleep()方法了。不过这样有很多弊端和风险,为了能合理规避风险以及让代码易于维护,在此总结几种常用方法:
1. 隐性等待:(配合BeforeMethod使用,相当于配置在测试中的参数)
@BeforeMethod
public void beforeMethod() {
driver= new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS );
driver. ...
因为我用的是selenium webdriver+Eclipse+TestNG的解决方案,之前也在网上看到过很多关于失败截图的方法。不知道在哪看过一篇文章,说一个Tester的截图就应该像诗人能“吟的一首好诗”一样“截的一手好图”, 而我看到的方法大多是基于Webdriver Exception,和调用EventListener相结合。下面我简单就我的经验将截图方法分类总结一下:
在说正题之前,先给出一个比较通用的常用截图方法,这个用过selenium的人就不用我多说了吧。基本上各种教程,例程给出的方法都大抵相同。而我们要实现的各种失败的方法也源于此,后续再谈。
public ...