莱州人社局网站wordpress 文章添加子标题
- 作者: 五速梦信息网
- 时间: 2026年04月20日 10:33
当前位置: 首页 > news >正文
莱州人社局网站,wordpress 文章添加子标题,wordpress邮件重置密码错误,南京企业网站开发费用申请这其实就是我们常说的“UI自动化测试”#xff0c;针对这个问题#xff0c;我先告知答题思路如下#xff1a; 1、什么是UI自动化#xff1f;有什么优势#xff1f; 2、UI自动化实践中会遇到什么难题#xff1f; 3、如何解决难题#xff0c;将UI落实到实践中#xff1f;… 这其实就是我们常说的“UI自动化测试”针对这个问题我先告知答题思路如下 1、什么是UI自动化有什么优势 2、UI自动化实践中会遇到什么难题 3、如何解决难题将UI落实到实践中【重点】 一、什么是UI自动化为什么使用UI自动化 1、什么是UI自动化 本质上来说UI自动化测试就是通过脚本或工具代替人工去执行功能测试用例自动完成测试用例的执行工作。常用于验证用户界面的功能、兼容和稳定性等主要用于执行回归测试。 UI自动化测试可以模拟用户与应用程序或网站的交互自动执行用户界面上的操作如点击按钮、输入文本、选择选项等并检查应用程序或网站的响应和行为是否符合预期在软件开发过程中帮助检测是否存在bug。 2、UI自动化有什么优势 UI自动测试可以模拟人工执行测试是最接近用户真实操作的测试方法这是UI自动化测试最吸引人的地方那么UI自动化测试还有下面这些优势 优势1提高测试效率。 相比手动测试UI自动化测试可以快速、准确地执行大量的测试用例提高测试效率减少人工测试的工作量。 优势2提高测试覆盖率。 UI自动化测试可以覆盖应用程序或网站的各个功能和页面确保每个功能都经过测试提高测试覆盖率减少漏测的风险。 优势3提高测试一致性。 UI自动化测试可以确保在不同平台、浏览器或设备上的测试执行一致减少人工测试的主观因素提高测试的一致性和可靠性。 优势4提高软件质量。 UI自动化测试可以帮助检测和修复应用程序或网站中的错误和缺陷提高软件质量减少软件发布后的问题。 但UI自动化测试在实战中却像是“带刺的玫瑰”。因为它能模拟用户真实的操作应用程序或前端网站是最贴近用户真实行为的模拟测试但是因为实践中的一些难题导致UI自动化容易投入很大却没有取的很好的效果。 现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。 如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受 可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛 分享他们的经验还会分享很多直播讲座和技术沙龙 可以免费学习划重点开源的 qq群号110685036 二、UI自动化实践中会遇到什么难题 有些人说UI自动化没有啥用主要是UI自动化在实际应用中会遇到一些难题导致没有取的很好的效果UI自动化测试目前主要面临下列这些挑战 1.UI自动化测试的投入产出比低。 想要取得好的效果必须前期投入较大在资源进行脚本开发但是往往后期使用时没有取的预想的效果容易导致投入中断 2.保障脚本的维护是个大问题。 项目频繁的迭代导致前端页面变化很快对应的脚本得不断的修改如何保障脚本的维护是个大问题。 3.UI自动化测试的稳定性也是个挑战。 脚本执行时经常遇到各种奇奇怪怪的Bug如何保障脚本的稳定性是个头疼的问题。 三、实践中如何解决以上4个难题【重点】 实际过程中以上4个难题该如何进行优化呢咱们以前端的web UI自动化为项目以PythonSelenium框架为背景来看下项目若要执行自动化测试应该怎么搞。 优化1如何保障投入产出比 很多人搞UI自动化测试没有想清楚到底要怎么搞上来就拿个框架先搞起来再说投入了很多人力物力然后搞到一半时却发现很多问题最后就完犊子了。。。 所以开始前需要做好规划要明确目标。如果是新起动的UI自动化测试建议可以先选好框架然后选择一个业务流程作为案例以该案例为目标去执行框架的搭建和脚本的开发完成开发后主要投入回归测试当中看看实际执行的效果如何然后统计投入的时间和人力成本然后再进行下一步的推进。 优化2如何保障脚本的维护 当前项目都是频繁迭代的这是不可改变的事实所以脚本写完后一定需要维护修改。 基于这个事实我们能优化的就是减少修改的次数在UI自动化中最常用的优化方法就是使用PO模式进行封装。 那什么是PO模式呢 PO是Page Object的缩写简单来说就是将前端项目中的每个页面封装为一个“类”页面上的元素都封装为实例的“属性”页面上的功能操作都封装为实例的“方法”。 这样封装后无论将来页面怎么变化我们只需要修改一次即可可以大大的提升维护的效率。 PO模式是自动化测试项目开发实践的最佳设计模式之一 优化3如何保障脚本执行的稳定性 UI自动化脚本执行时可能会遇到各种问题比如浏览器启动时间过长比如页面加载过长比如图片被挡住等等你无法预知。 优化方法除了我们常用的各种显式或隐式等待处理外我们还可以对原始的api进行封装。比如以Web UI常用的Selenium框架为例当我们等待某个元素出现时为了保障成功性需要对“等待”做一个封装。除了显示等待外还可以进一步优化做个循环处理就是等待3次每次等待失败后可以重新刷新等待。 比如封装一个“等待元素”出现确保可以点击的方法如下所示 def element_click_wait(self, located_type, located_key, assert_conditionNone, message执行点击超时,time_out10, refreshFalse): 【适用于页面跳转时等待元素出现确保可以点击的场景】 等待1个元素点击是否正常并验证点击是否成功每隔一段时间轮询点击1次直到超时抛出异常为止 :param located_type 定位方式8种:id name class tag link plink xpath css :param located_key 定位关键字 :param assert_condition 验证点击是否完成的断言条件语句【默认不验证点击是否成功】 :param message 点击失败提示信息 :param time_out 等待时长默认为10秒 :param refresh 刷新标志如果为True则在等待超时后刷新页面重新再执行一轮等待执行相当于刷新后重新执行一次 如果是False则不执行刷新直接超时报错 driver self.driver is_type_true 0 # 用户判断定位方式参数是否正确 for i in range(int(time_out)*2): # 循环次数为配置的2倍以便处理刷新重试的情景 try: time.sleep(1) if located_type id: driver.find_element_by_id(located_key).click() elif located_type name: driver.find_element_by_name(located_key).click() elif located_type class: driver.find_element_by_class_name(located_key).click() elif located_type tag: driver.find_element_by_tag_name(located_key).click() elif located_type link: driver.find_element_by_link_text(located_key).click() elif located_type plink: driver.find_element_by_partial_link_text(located_key).click() elif located_type xpath: driver.find_element_by_xpath(located_key).click() elif located_type css: driver.find_element_by_css_selector(located_key).click() else: is_type_true 1 except: if i (int(time_out)-1): # 第1次循环到点判断 if refresh: # 执行刷新后重新再执行1轮 refresh False self.element_refresh_wait() # 刷新页面 continue else: # 不执行刷新重试 AutomationLog.LogMsg(点击失败第1次等待超时啦!—【located_type,located_key】, 2) raise ex.TimeoutException(message) elif i (int(time_out)*2-1): # 刷新后再执行1轮还是失败了 AutomationLog.LogMsg(点击失败第2次等待也超时啦!—【 located_type , located_key 】, 2) raise ex.TimeoutException(message) elif assert_condition: # 正常执行循环(验证点击是否成功,成功则结束循环否则继续循环) try: WebDriverWait(driver, 1).until(assert_condition) break except: continue else: # 正常执行循环(不验证点击结果) continue if is_type_true 1: AutomationLog.LogMsg(定位方式写错啦请检查located_type参数!—【 located_type 】, 2) raise ex.InvalidArgumentException(定位方式参数出错!) elif assert_condition: # 正常执行循环(验证点击是否成功,成功则结束循环否则继续循环) try: WebDriverWait(driver, 1).until(assert_condition) break except: continue else: # 正常执行循环(不验证点击结果) break 当然除了以上的实践经验其他比如还可以找开发配合对要测试的常用UI元素进行id的编码这样也可以大大提升成功的效率轻松解决定位的问题等。UI自动化分为web自动化和app自动化。 如果文章对你有帮助记得点赞收藏加关注。会不定期分享一些干货哦……
- 上一篇: 莱州环球网站建设网站建设低价建站损失在哪里
- 下一篇: 莱州网站建设报价和规划网站如何
