请选择行业
请选择职位
请选择省份
请选择城市

web自动化测试常见面试题——软件测试圈

时间: 2022-09-21 10:53   作者: YZL40514131   点击次数: 
 
一、找不到元素可能出现的原因:

1、元素表达式错误;

2、不在指定的frame;

3、等待时间短,页面加载速度慢;

4、执行脚本打开了新的页面,不在指定的窗口中。

二、优化web自动化测试效率

避免使用强制等待,会浪费等待的时间

三、PO模式的理解

1、PO模式实现代码的复用性;

2、提高了代码的可维护性、可读性;

  • 将业务逻辑和测试逻辑相分离;
  • 当页面发生变化的时候,测试逻辑不需要发生改变,只需要改动业务逻辑;
  • 当测试逻辑发生变化的时候,业务逻辑不需要变化,只需要改动测试逻辑。

3、页面方法一般是返回的是self或者其他页面;

4、assert 断言不要写在页面当中;

5、如果可能有多种情况的返回值,封装多个方法(行为)。

四、稳定性和效率的问题

1、优先考虑稳定性;

2、如果提升效率会造成稳定性影响,先不考虑提升效率;

五、验证码的问题

1、开发关掉;

2、开发设置万能验证码。

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

1、需求比较稳定、不会频繁变更的;

2、项目周期比较长(优惠活动,中秋、端午,功能是一次性,花半个月写了一次代码)

3、代码复用性高,可以跨平台、跨系统;

4、流程设计比较规范;

5、经常需要的回归测试。

七、pytest和unittest的区别

1、pytest有自动收集用例的的功能;

2、pytest有上千种插件,自己的插件系统;

3、pytest有失败重新运行的功能;

4、pytest有非常灵活的测试夹具、fixture、setUp、tearDown

5、pytest和unittest是完全兼容的。

八、影响web自动化的稳定性的因素有那些?

1、后端服务,加载一些静态页面,有时渲染的比较慢

九、自动化测试用例的流程(写代码的过程)

1、进行手工测试,熟悉流程、元素定位表达式准备好;

2、形成测试步骤;

3、转化为代码版的步骤;

4、写代码。

十、测试框架大概结构

1、common,公共方法层:封装一些常用的方法、日志配置文件;

2、config,配置层:日志级别、mysql数据库信息、账号信息;

3、data,数据层:测试用例;

4、img,图片层:页面报错截图;

5、logs,日志文件层:脚本运行日志;

6、output,测试报告层;

7、pages,业务逻辑层;

8、testcases,测试逻辑层;

9、main文件:脚本入口。

十一、 请列举出web自动化中你常用的断言(验证)方式

1、根据页面的url断言(验证跳转后的页面是否正确

2、根据页面的标题(验证跳转后的标题是否一致)

3、根据页面的提示信息(充值成功后,跳转充值成功的文字)

4、根据某些元素的显示(跳转后的用户名)

十二、UI自动化测试用例如何设计?

UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试相比,自动化测试用例更加注重用例的严谨性;

1、优先选取覆盖产品核心功能的用例;

2、从成本考虑,不要选择流程过于复杂的用例;

3、选取的用例可以是重复执行,繁琐的部分,比如字段的验证、提示信息的验证;

4、优先实现正向的测试用例,反向情况一般情况复杂,数量多,耗费时间。

十三、为了提高UI自动化脚本的稳定性,你有做了哪些工作?

1、元素定位表达式,尽量选择相对路径的xpath表达式;

2、查找元素优先使用显性等待;

3、用例与用例之间尽量避免产生依赖;

4、尽量保证单独的测试环境,避免其他同学同步运行;

5、脚本运行失败后加入重运行机制,提高用例的稳定性。

十四、利用PO模式

将业务逻辑和测试逻辑相分离,当页面发生变化的时候,不需要改变测试代码,改变页面代码即可;

当测试逻辑发生变化的时候,不需要改动页面代码,改变测试代码即可;

测试数据和用例分离,单独维护测试数据。

十五、ui自动化实现你认为最困难的地方是什么

1、稳定性有时候不高;

2、往往在提升效率的时候,会影响稳定性,稳定性排在第一位;

3、需求经常变动,维护成本高;

4、特殊元素难以定位;

5、脚本不稳定。

十六、请描述下你所设计的Web自动化框架的特点?

1、通过pytest单元测试框架组织管理测试用例;

2、引入page object思想对用例进行分层设计,业务代码和测试代码相分离;

3、页面元素共性操作提取:basepage封装,实现实时执行日志输出,异常实时捕获,用例失败截图;

4、测试用例中,使用数据驱动;

5、logging日志引入,问题定位;

6、allure报表,用例失败后截图;

7、用例失败重试,提高用例稳定性;

8、集成到jenkins中,每天小时构建多次。

十七、如何做 UI 自动化?

1、在编写脚本前,我们会对需求进行评估,确认这个需求可不可以实现 UI 自动化;

2、如果可以的话,从手工用例中就筛选出能实现自动化测试的用例,一般作用于主流程测试、回归测试;

3、我们是用 selenium 工具来实现自动化,采用 python 脚本语言,pytest测试框架和PO模式搭建的UI自动化测试框架;

4、比如,充值这个功能的脚本,我们是这样做的:首先,根据搭建好的测试框架,测试框架包含 testcase,主要用来存放测试用例代码,report 用来存放测试报告;

5、其次我们会把用例中公共的部分封装到 common 中;

6、最后用 run.py文件运行项目自动化用例;

7、脚本调试完后,我们会用 jenkins 持续集成工具,设置脚本每天晚上 10 点跑一遍脚本,跑完后生成 html 格式的自动化测试报告并自动发送邮件。

十八、web测试框架有什么可以优化的地方吗?

常用的方法,或者代码量比较多的方法,可以封装成一个公共方法,减少代码的书写、增强代码的可读性和可维护性

十九、框架中实现了那些分层?

  • 页面逻辑和测试逻辑分层;
  • 测试数据和测试代码分层;
  • 元素定位locator和方法分层;
  • basepage公共方法的分层。

二十、你的自动化用例的执行策略是什么?

1、自动化测试用例是用来监控的,再次目的下,我们就把自动化测试用例设置成定时执行的,每30分钟执行一次,在jenkins上创建一个定时任务即可;

2、必须回归的用例。有些测试用例,在产品任何变动上线之前都需要回归测试;

3、不需要经常执行的测试用例,我们没有必要一直回归执行,毕竟是有时间消耗的,有些时候非必要的业务不需要经常回归;

4、不需要经常执行的测试用例就需要人工执行,在jenkins创建一个任务,需要执行的时候人工构建。

打印本页 | 加入收藏

上一篇:刚开始测试自动化? 牢记这6点常见误区!    

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: