一、找不到元素可能出现的原因:
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创建一个任务,需要执行的时候人工构建。
作者:YZL40514131
原文链接:https://blog.csdn.net/YZL40514131/article/details/123930162