目录
二、什么样的项目比较适合做自动化测试,什么样的不适合做自动化测试?
九、driver.quit()和driver.close()的区别?
十一、Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
一、什么是自动化测试,自动化测试的优势是什么?
通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。
自动化测试的优势:
-
减少回归测试成本
-
减少兼容性测试成本
-
提高测试反馈速度
-
提高测试覆盖率
-
让测试工程师做更有意义的测试
二、什么样的项目比较适合做自动化测试,什么样的不适合做自动化测试?
适合做的项目:
-
项目周期长且相对稳定
-
需要做频繁的冒烟测试
-
需要经常做回归测试
-
需要进行大数据量的数据驱动测试
不适合做的项目:
-
项目周期短用例不会多次重复执行
-
被测项目不稳定变化太频繁
三、在制定自动化测试计划的时候一般要考虑哪些点?
-
选择适合的测试工具或分析当前的工具是否适合新项目
-
选择合适的自动化测试框架
-
确定要做自动化测试的范围和不做自动化测试的范围
-
测试环境的准备与搭建
-
制定一个粗略的脚本开发的时间表
-
制定脚本执行的一些策略,如冒烟测试的频率、回归测试的时间点及频率等
-
定义自动化测试的输出,比如脚本、测试数据、发现的缺陷、测试报告等
四、编写自动化脚本时的一些规范?
-
统一的命名约定,如用例名、方法名等
-
良好的脚本注释
-
遵循代码规范,使用适当的缩进
-
对异常进行处理
五、做自动化测试时关注的一些指标?
自动化测试用例的覆盖率=自动化测试用例数/所用用例总数,这个比例越高测试反馈越快,成本节约越多。
节省的时间成本=手工测试所花的时间-自动化测试所花的时间。
自动化测试的投入=开发脚本的投入+脚本维护的投入+工具价格。
自动化测试发现的缺陷数,每次回归测试时自动化测试发现的缺陷数及漏测数,反应了自动化用例的有效性。
自动化测试投入产出比:
-
ROI=(手工测试的成本-自动化测试成本)/自动化测试成本。
-
ROI如果是负值说明自动化测试的成本未收回,ROI为正值说明自动化测试成本已回收,且值越大说明回报越好。
六、自动化测试可以达到100%的覆盖率吗?
比较难,因为有些用例场景无法被自动化,一些验证易用性友好性的用例不适合做自动化,有些边缘的用例很少被重复执行,从投入产出比来说也不适合做自动化。
七、你们公司开展自动化测试遇到一些什么问题?
-
项目流程不规范,项目变动频繁导致自动化用例维护成本高。
如何解决:深入理解用户需求,规范开发流程,自动化用例先覆盖已经稳定的功能。
-
对自动化期望太高。
如何解决:自动化也是一个逐步完善的过程,不可能一下子完全代替手工。
-
有些自动化工程师的技术能力偏弱。
如何解决:提升编程能力、提升自动化工具使用能力、对新人进行培训等。
八、Selenium中定位网页元素的八种方式?
九、driver.quit()和driver.close()的区别?
-
driver.close()仅关闭当前用户正在操作的页面;
-
driver.quit()关闭整个浏览器,关闭所有的页面。
十、什么是POM?
POM中文字母意思是页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者说思想。
POM不是一个框架,是一个解决问题的思想。采用POM的目的是为了解决前端中UI变化频繁,从而造成测试自动化脚本维护的成本越来越大。
POM主要有以下优点:
-
把Web UI对象仓库从测试脚本分离,业务代码和测试脚本分离;
-
每一个页面对应一个页面类,页面的元素写到这个页面类中;
-
页面类主要包括该页面的元素定位,和这些元素相关的业务操作代码封装的方法;
-
代码复用,从而减少测试脚本代码量;
-
层次清晰,同时支持多个编写自动化脚本开发,例如每个人写哪几个页面,不影响他人;
-
建议页面类和业务逻辑方法都给一个有意义的名称,方便他人快速编写脚本和维护脚本。
十一、Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?
-
添加元素智能等待时间driver.implicitly_wait()。
-
try方式进行id、name、class、xPath、css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种。
Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的。
但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的,需要开发人员规范开发习惯,如给页面元素加上唯一的name、id等,这样就能大大地提高元素定位的准确性。
当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证每一个操作符合预期结果。
十二、如何提高Selenium脚本的执行速度?
Selenium脚本的执行速度受多方面因素的影响,如网速、操作步骤的繁琐程度、页面加载的速度以及我们在脚本中设置的等待时间、运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。
我们可以从以下几个方面来提高速度:
-
减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。
-
中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。
-
在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。
-
配置实现多线程,在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。
十三、你的自动化用例的执行策略是什么?
自动化测试用例的执行策略是要看自动化测试的目的,通常有如下几种策略:
-
自动化测试用例是用来监控的,在此目的下,我们就把自动化测试用例设置成定时执行的,比如每五分钟或是一个小时执行一次,在Jenkins上创建一个定时任务即可。
-
必须回归的用例,有些测试用例在产品变动上线之前都需要回归执行,那我们就把测试用例设置成触发式执行,在Jenkins上将我们的自动化测试任务绑定到开发的build任务上,当开发人员在测试环境上部署代码的时候,我们的自动化测试用例就会被触发执行。
-
不需要经常执行的测试用例,像全量测试用例,我们没有必要一直回归执行,必竟还是有时间消耗的,有些非主要业务线也不需要时时回归,这类测试用例我们就采用人工执行,在Jenkins上创建一个任务,需要执行的时候人工去构建即可。
以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了
各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!
三连之后我会在评论区挨个私信发给你们~