系统测试UI测试总结与问题

简介: 系统测试UI测试总结与问题

一.系统测试

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

  1. 介入需求一定要早 ,越早介入不仅可以减少成本,还避免了后续工作不必要的麻烦
  2. 测试用例尽量覆盖全面,最好做到用少的测试用例测试出多的bug
  3. 你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。
     1)如果不是错误则应该主动承认不是缺陷。
     2)如果是需求不明确的则应和开发加强沟通补充需求。
     3)如果和开发争论不休应该邀请上级判断。
  4. 软件的缺陷等级应如何划分?
     严重: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该文件所在目录 下载)

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

  1. 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的运用,移除增加元素

相关文章
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
88 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
1月前
|
Kubernetes 测试技术 持续交付
C# 一分钟浅谈:集成测试与系统测试
【10月更文挑战第19天】本文详细介绍了集成测试和系统测试的概念、目的及其在软件开发中的重要性。通过分析常见问题和易错点,结合代码示例,探讨了如何通过代码规范、自动化测试和持续集成等方法提高测试效果,确保软件质量和可靠性。
80 1
|
7月前
|
前端开发 Java 测试技术
【软件测试】个人博客系统测试
【软件测试】个人博客系统测试
104 1
|
2月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
73 1
|
4月前
|
前端开发 测试技术 UED
【测试效率对比】深入分析:为何UI自动化测试的投资回报率通常低于接口自动化测试?
这篇文章深入分析了UI自动化测试与接口自动化测试的投资回报率(ROI)问题,指出UI自动化测试在某些情况下的ROI并不低,反驳了没有实施过UI自动化就轻易下结论的观点,并强调了实践的重要性和自动化测试在项目迭代中的作用。
95 1
|
4月前
|
测试技术 Swift iOS开发
探索iOS自动化测试:使用Swift编写UI测试
【8月更文挑战第31天】在软件开发的海洋中,自动化测试是保证船只不偏离航线的灯塔。本文将带领读者启航,深入探索iOS应用的自动化UI测试。我们将通过Swift语言,点亮代码的灯塔,照亮测试的道路。文章不仅会展示如何搭建测试环境,还会提供实用的代码示例,让理论知识在实践中生根发芽。无论你是新手还是有经验的开发者,这篇文章都将是你技能提升之旅的宝贵指南。
|
5月前
|
测试技术 数据库 Python
在系统工程中,软件测试是一个至关重要的环节,它确保软件的质量、可靠性和性能。软件测试通常包括多个阶段,如单元测试、集成测试、系统测试和验收测试等。
在系统工程中,软件测试是一个至关重要的环节,它确保软件的质量、可靠性和性能。软件测试通常包括多个阶段,如单元测试、集成测试、系统测试和验收测试等。
|
7月前
|
前端开发 测试技术 持续交付
【Flutter 前端技术开发专栏】Flutter 中的 UI 测试与自动化测试
【4月更文挑战第30天】本文探讨了 Flutter 应用中UI测试和自动化测试的重要性,包括保障质量、提高效率和增强开发信心。Flutter提供`flutter_test`库进行Widget测试,以及`flutter_driver`进行集成测试。UI测试涵盖界面布局、交互和状态变化的验证,最佳实践建议尽早引入测试、保持用例简洁,并结合手动测试。未来,随着Flutter技术发展,UI测试和自动化测试将更加完善,助力开发高质量应用。
230 0
【Flutter 前端技术开发专栏】Flutter 中的 UI 测试与自动化测试
|
7月前
|
测试技术 持续交付 API
Python的UI自动化测试
【4月更文挑战第17天】Python UI自动化测试涉及Selenium(Web)、Appium(移动应用)和PyQt(桌面应用)等框架。基本步骤包括确定测试目标、选择合适框架、安装配置、编写测试脚本、运行调试以及集成到CI/CD流程。注意自动化测试不能完全取代人工测试,应根据需求平衡使用。
105 1
|
7月前
|
消息中间件 Kafka Linux
Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
【2月更文挑战第21天】Kafka【付诸实践 03】Offset Explorer Kafka 的终极 UI 工具安装+简单上手+关键特性测试(一篇学会使用 Offset Explorer)
876 2