自动化测试

什么样的项目适合自动化测试

软件需求变动不频繁

项目周期较长

自动化测试脚本可重复使用

1,selenium中如何判断元素是否存在?

        isElementPresent 

2,selenium中hidden和display = none的元素是否可以被定位?

        不能

3,id,name,class,xpath, css selector这些属性,你最偏爱哪一种,为什么?

        css 、xpath 几乎所有的元素都可以定位到

4,如何去定位页面上动态加载的元素?

        触发动态加载元素的事件,直至动态元素出现,进行定位

5,如何去定位属性动态变化的元素?

        xpath或者css通过同级、父级、子级进行定位

6,自动化测试的时候是不是需要连接数据库做数据校验?

        UI自动化不需要

        接口测试会需要

7,点击链接以后,selenium是否会自动等待该页面加载完毕?

        会的 

8,Page Object设计模式的优点?

1、减少代码的重复

2、提高测试用例的可读性

3、提高测试用例的可维护性,特别是针对UI频繁变化的项目

9,page object设置模式中,是否需要在page里定位的方法中加上断言?

        不需要 

10,怎样去选择一个下拉框中的value=xx的option?

        二次定位 

11,如何在定位元素后高亮元素(以调试为目的)?

        重置元素属性,给定位的元素加背景、边框 

12,什么是断言?

        断言的英文是assertion,断言检查的英文是assertion checking。

        断言是指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量在程序执行期间的某个点上必须满足的条件。

13,如果你进行自动化测试方案的选型,你会选择哪种语言,java,js,python还是ruby?

        使用自己熟悉的语言 

14,自动化测试用例从哪里来?

        手工用例中抽取

        可以参考自动化用例的执行策略

15,你觉得自动化测试最大的缺陷是什么?

        不稳定,可靠性,不易维护,成本与收益 

16,webdriver可以用来做接口测试吗?

        不推荐有难度

17,selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

     添加元素智能等待时间 driver.implicitly_wait(30);

     try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以    自动尝试第二种;

     Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证我的每一个操作符合我的预期;

18,如何提高selenium脚本的执行速度?

尽量使用by_css_selector()方法:by_css_selector()方法的执行速度比by_id()方法的更快,因为源码中by_id()方法会被自动转成by_css_selector()方法处理

使用等待时,尽量使用显示等待,少用sleep(),尽量不用隐式等待

尽量减少不必要的操作:可以直接访问页面的,不要通过点击操作访问

并发执行测试用例:同时执行多条测试用例,降低用例间的耦合

有些页面加载时间长,可以中断加载

    Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。

我们可以从以下几个方面来提高速度:

一,减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。

二,中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

三,在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。

四,配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。 

你可能感兴趣的:(自动化测试)