6-面试题(Web自动化测试)
1、如何提升webui自动化的稳定性
1·导致ui自动化不稳定的因素
1.1 web页面的多变
1.2 页面隐藏元素
1.3 页面元素加载不稳定
1.4 系统业务复杂
1.5 ajax请求问题
1.6 测试环境数据准备问题
2·解决问题的各种方法
1.从自动化框架解决问题
1.1设置显式等待
重写selenium的底层接口,加入显式等待,设置等待条件及异常处理;
1.2等待页面加载稳定
重写selenium的底层接口,定位元素前需要先等待页面加载稳定,页面加载稳定的判断条件为"页面源码在限定时间内不再发生变化";
1.3过滤隐藏元素
重写selenium的底层接口,在selenium判断的基础上,过滤掉页面特殊的隐藏元素,增强脚本容错性;
1.4设置xhr请求等待
重写selenium的底层接口,在脚本开启代理的情况下,判断xhr请求是否都已经响应,此处可作为选配仅在脚本开启代理时作判断
1.5继承requests模块
传统的webui框架结构时测试报告模块+日志模块+项目配置文件模块+unittest模块+selenium模块,可以在此基础上集成requests模块。
requests模块提供接口请求、获取响应内容、解析响应内容的基本封装。
2.从设计模式解决问题
2.1采用pom设计模式
a.页面元素在发生变化时,我们仅需从底层修改对应页面对象,大大降低了后期的维护成本;
b.将复杂的业务逻辑划分成多个细小单元,通过组织这些细小单元形成我们的业务代码,增强代码的复用性,提高效率;
c.统一代码风格,减少个人不良的代码习惯对脚本稳定性的影响;
2.2通过requests模块完成环境数据准备
a.提高脚本执行效率
b.减少脚本在非用例验证点的地方提前报错,提升脚本容错率
c.增强脚本可操作性,便捷获取业务系统的一些关键数据,减少ui操作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理