系统测试UI测试总结与问题(面试)

简介: 文章目录一.系统测试UI测试浏览器的常用方法鼠标操作键盘操作问题&解决

文章目录

一.系统测试

1.易用性,功能,分支,边界,性能等功能性和非功能性需要都要进行测试


2.介入需求一定要早 ,越早介入不仅可以减少成本,还避免了后续工作不必要的麻烦


3.测试用例尽量覆盖全面,最好做到用少的测试用例测试出多的bug


4.你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。


1)如果不是错误则应该主动承认不是缺陷。


2)如果是需求不明确的则应和开发加强沟通补充需求。


3)如果和开发争论不休应该邀请上级判断。


5.软件的缺陷等级应如何划分?


严重:


1.由于程序所引起的死机,非法退出


2.死循环


3.数据库发生死锁


4.因错误操作导致的程序中断


5.功能错误


6.与数据库连接错误


7.数据通讯错误。


较严重:


1.程序错误


2.程序接口错误


3.数据库的表、业务规则、缺省值未加完整性等约束条件。


一般性:


1.操作界面错误(包括数据窗口内列名定义、含义是否一致)


2.打印内容、格式错误


3.简单的输入限制未放在前台进行控制


4.删除操作未给出提示


5.数据库表中有过多的空字段。


建议:


1.界面不规范


2.辅助说明描述不清楚


3.输入输出不规范


4.长操作未给用户提示


5.提示窗口文字未采用行业术语


6.可输入区域和只读区域没有明显的区分标志 。

UI测试

一.自动化使用场景:

  1. 需求稳定,不会频繁变动的场景。
  2. 研发和维护周期长,需要频繁执行回归测试的场景。
  3. 需要在多个平台上重复运行相同测试的场景。
  4. 通过手工测试无法实现或成本太高的场景。
  5. 被测软件开发较为规范,并且能够保证系统可测试性的场景。
  6. 测试人员已经具备编程能力的场景。

二.8种基础定位方法:

#id定位
driver.find_element_by_id() 
#name定位
driver.find_element_by_name()  
#class定位
driver.find_element_by_class_name()  
#标签名定位,一般用于iframe;标签较少的也可以使用,用取下标的方式
driver.find_element_by_tag_name() 
#xpath定位,可以用firepath来获得这个定位
driver.find_element_by_xpath()  
#css定位
driver.find_element_by_css_selector() 
#a标签的文本定位
driver.find_element_by_link_text()  
#a标签的局部文本定位
driver.find_element_by_partial_link_text()   

三.基本用法:

from selenium import webdriver
#导入selenium库
driver = webdriver.Chrome()
#这是Google驱动
driver.get('https://www.baidu.com')
#打开网页
print(driver.title)
#输出网页的title
driver.quit()
driver.close()
#关闭浏览器
#第二种
driver_path=r"geckodriver.exe" #驱动
cls.driver=webdriver.Firefox(executable_path=driver_path)#火狐浏览器
cls.driver.get('https://www.baidu.com')
cls.driver.maximize_window()

浏览器的常用方法

driver.set_window_size(wide,high)
#窗口宽、高
driver.back()
#页面后退
driver.forward()
#页面前进
driver.refresh()
#页面刷新
driver.title
#用于获得当前页面的标题
driver.current_url
#用户获得当前页面的URL
driver.find_element_by_id("").clear()
#清除文本
driver.find_element_by_id("").send_keys("selenium")
#模拟按键输入selenium
driver.find_element_by_id("").click()
#单机元素
driver.find_element_by_id("").submit()
#回车提交
driver.find_element_by_id("").text
#获取元素的文本

鼠标操作

#运行时需要导入
from selenium.webdriver.common.action_chains import ActionChains
apple = driver.find_element_by_id("wk")
#执行所有 ActionChains 中存储的行为;
ActionChains(driver).context_click(apple).perform()
#右击
ActionChains(driver).double_click(apple).perform()
#双击
ActionChains(driver).drag_and_drop(apple).perform()
#拖动
ActionChains(driver).move_to_element(apple).perform()
#鼠标悬停

键盘操作

driver.find_element_by_id("").send_keys(Keys.CONTROL,'a') 
#全选(Ctrl+A)
driver.find_element_by_id("").send_keys(Keys.CONTROL,'c') 
#复制(Ctrl+C)
driver.find_element_by_id("").send_keys(Keys.CONTROL,'x') 
#剪切(Ctrl+X)
driver.find_element_by_id("").send_keys(Keys.CONTROL,'v') 
#粘贴(Ctrl+V)
driver.find_element_by_id("").send_keys(Keys.F1)
#键盘 F1

问题&解决

1.pyinstaller在pycharm中下载失败,在cmd的pip install pyinstaller下载依然失败

解决方案:

下载一个pyinstaller-3.6-py2.py3-non-any.whl文件,再输入

pip install pyinstaller-3.6-py2.py3-non-any.whl下载即可(要进入whl该文件所在目录 下载)

【注意:要先配置好环境变量】


2.pyinstaller打包后执行exe程序提示没有某模块

解决方案:

run放哪exe就放哪,不然就改模块里面的导入路径


3.经常出现找不到该元素的错误,代码无误

代码运行太快,页面还没加载出来,加一个time.sleep()


4.用class定位不到元素

单独用class属性定位,可能会有多个元素是相同的class属性,需要找目标元素的唯 一属性定位。


5.implicitly_wait()与time.sleep()之间的区别

(1)implicitly_wait()表示隐式等待,如果找不到元素会一直循环访问直到时间用尽

(2)time.sleep()表示显式等待,固定等待时间

(3)WebDriverWait(driver, 20, 0.5).until(expected_conditions.alert_is_present())

显式等待:显式等待是对元素的等待;在每次进行元素查找之前都需要强调一次:

其中,20s表示最大等待时间,0.5s表示轮询时间间隔;检查到元素即停止等待,执行下一个操作;


6.弹出窗口的处理

如果是浏览器自带的弹出窗口,即元素定位不到的,用switch_to_alert()处理就可以。如果是开发人员自写的窗口,用元素定位直接操作即可。


7.document的运用,移除增加元素



相关文章
|
10月前
|
前端开发 测试技术 API
测试金字塔:别再只盯着UI自动化了
测试金字塔:别再只盯着UI自动化了
778 116
|
10月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
849 113
|
11月前
|
人工智能 JavaScript 算法
Playwright携手MCP:AI智能体实现自主化UI回归测试
MCP 协议使得 AI 能够通过 Playwright 操作浏览器,其中快照生成技术将页面状态转化为 LLM 可理解的文本,成为驱动自动化测试的关键。该方式适用于探索性测试和快速验证,但目前仍面临快照信息缺失、元素定位不稳定、成本高、复杂场景适应性差以及结果确定性不足等挑战。人机协同被认为是未来更可行的方向,AI 负责执行固定流程,人类则专注策略与验证。
|
10月前
|
监控 Java 关系型数据库
面试性能测试总被刷?学员真实遇到的高频问题全解析!
面试常被性能测试题难住?其实考的不是工具,而是分析思维。从脚本编写到瓶颈定位,企业更看重系统理解与实战能力。本文拆解高频面试题,揭示背后考察逻辑,并通过真实项目训练,帮你构建性能测试完整知识体系,实现从“会操作”到“能解决问题”的跨越。
|
10月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
11月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
11月前
|
人工智能 JavaScript 测试技术
当Playwright遇见MCP,AI智能体实现自主化UI回归测试
本文探讨如何通过Model Context Protocol(MCP)让AI智能体驱动Playwright实现端到端自动化测试。重点解析快照技术的实现原理与实战流程,同时深入剖析其在信息丢失、元素定位、成本效率及逻辑复杂性等方面的现实挑战。
|
12月前
|
人工智能 IDE 测试技术
Browser-Use在UI自动化测试中的应用
Browser-Use是一款浏览器自动化工具,具备视觉与HTML解析、多标签管理、操作记录与复现、自定义操作、自我纠正及并行执行等功能,助力AI智能体高效完成网页任务。
1523 0
|
人工智能 IDE 测试技术
UI总改版?这个自我修复的AI测试神器让团队告别深夜紧急回滚
BrowserStack推出革命性AI代理套件,以5大专属代理重构测试全流程:测试用例生成准确率91%、低代码脚本转化提速10倍、自修复机制降低40%失败率。深度集成IDE生态,实现"测试即服务",将团队生产力提升50%,重新定义质量保障边界。
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
1132 11
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡

热门文章

最新文章