操作自动化测试如何实现用例设计实例?

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

在编写用例之间,笔者再次强调几点编写自动化测试用例的原则:

1、一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器。
2、一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统
3、尽量只做功能中正向逻辑的验证,不要考虑太多逆向逻辑的验证,逆向逻辑的情况很多(例如手号输错有很多种情况),验证一方面比较复杂,需要编写大量的脚本,另一方面自动化脚本本身比较脆弱,很多非正常的逻辑的验证能力不强。(我们尽量遵循用户正常使用原则编写脚本即可)
4、脚本之间不要产生关联性,也就是说编写的每一个脚本都是独立的,不能依赖或影响其他脚本。
5、如果对数据进行了修改,需要对数据进行还原。
6、在整个脚本中只对验证点进行验证,不要对整个脚本每一步都做验证。

一、登陆用例实例

笔者建议通过excle 表格来编写自动化测试用例。

用例001:

代码示例:

备注:通过匹配用户登录之后的昵称来判断用户是否登录成功。

用例脚本(login.py):

#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Firefox() driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fwebcloud.kuaibo.com%2F") driver.maximize_window() #浏览器最大化 #登陆快播私有云 driver.find_element_by_id("user_name").send_keys("testing360") driver.find_element_by_id("user_pwd").send_keys("198876") driver.find_element_by_id("dl_an_submit").click() time.sleep(3) #获取用户名 now_user=driver.find_element_by_xpath("//div[@id='Nav']/ul/li[4]/a[1]/span").text #用户名是否等于虫师,不等于将抛出异常 if now_user==u'虫师': print '登陆成功' else: raise NameError('user name error!') #退出 driver.find_element_by_class_name("Usertool").click() time.sleep(2) driver.find_element_by_link_text("退出").click() time.sleep(2) driver.close()

二、添加文件用例实例


用例002:

备注:通过计算用户列表中的文件的数量来判断文件是否添加成功。

用例脚本(collect.py):

注:用例登陆与退出参考用例001,本用例只关注收藏用户分享的逻辑代码。#判断当前文件个数

inputs=driver.find_elements_by_tag_name('input') n=0 for i in inputs: if i.get_attribute('type')=="checkbox": n=n+1 print u"当前列表文件为%d" %n #收藏用户分享文件 driver.find_element_by_class_name("collect").click() time.sleep(3) #再次获取当前文件的个数 inputs=driver.find_elements_by_tag_name('input') ns=0 for ii in inputs: if ii.get_attribute('type')=="checkbox": ns=ns+1 print u"当前列表文件为%d" %ns #判断执行收藏文件之后比收藏之间文件加1 ,否则抛异常 if ns==n+1: print "ok!" else: raise NameError('添加文件失败!!')

三、删除文件实例


用例003:

备注:因为删除了一个文件对文件的数据发生的改变,如果多次执行脚本,列表中的文件被删除完了就会引发异常,所以在删除一个文件后,需要再添加一文件,但添加文件操作不做验证。

用例脚本(del_one_file.py):#判断当前文件个数

inputs=driver.find_elements_by_tag_name('input') n=0 for i in inputs: if i.get_attribute('type')=="checkbox": n=n+1 print u"当前列表文件为%d" %n #删除操作 driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div/div[4]/table/tbody/tr/td/input").click() driver.find_element_by_class_name("dele").click() driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div").click() time.sleep(4) #再次获取当前文件的个数 inputs=driver.find_elements_by_tag_name('input') ns=0 for ii in inputs: if ii.get_attribute('type')=="checkbox": ns=ns+1 print u"当前列表文件为%d" %ns #判断执行删除单个文件之后比删除之后文件减1 ,否则抛异常 if ns==n-1: print "ok!" else: raise NameError('删除文件失败!!') #收藏用户分享单个文件 driver.find_element_by_class_name("collect").click() time.sleep(3)

四、重命名文件用例实例


用例004:

备注:文件的重命名其实我们很难找到证据(验证点)证明重命名成功,那么脚本整个运行没有报错,我们也可模糊的判断功能测试是OK 的。

用例脚本(renaming.py)

#勾选重命名的文件 driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div/div[4]/table/tbody[5]/tr/td/input").click() time.sleep(3) #鼠标移动到“更多”按钮弹下拉框 element=driver.find_element_by_class_name("more-fe") #定位到“更多”按钮 ActionChains(driver).move_to_element(element).perform() #鼠标移动到“更多”按钮弹下拉框 time.sleep(2) #在li 标签(更多下拉框)中筛选到data-action==rename(重命名)选项点击 lis=driver.find_elements_by_tag_name('li') for li in lis: if li.get_attribute('data-action') == 'rename': li.click() time.sleep(2) 在input 标签中筛选type==text 的重命名输入框 inputs=driver.find_elements_by_tag_name('input') for input in inputs: if input.get_attribute('type') == 'text': input.send_keys(u"新文件名") #进行重名操作 input.send_keys(Keys.ENTER) #回车确认重命名 time.sleep(2)

五、总结

在本章中,简单对比了手工测试用户与自动化测试用例的区别,自动化测试用例编写的原则,如何通过python 捕捉异常和抛出异常,以及webdriver 提供的get_screenshot_as_file()函数,以及如何编写自动化用例与脚本等。

不过先不要急于开始实施自动化测试,虽然我们可以编写单个的测试用例,并通过异常捕捉判断用例是否运行成功。但只有与通过测试框架的整合,我们才能真正有效可行的运用自动化测试技术。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选择高效服装管理ERP系统的最佳推荐与比较分析

市场上高效的服装管理ERP系统推荐分析 在选择高效的服装管理ERP系统时,市场上有多款值得关注的产品。其中,艾格文服装ERP以其全面的功能和灵活的定制选项备受推崇。该系统专注于提高服装企业的运营效率,提供全链条的管理解决方案。为了使决策…

技术难点攻克五步法:韩宁波的实战教学手册

技术难点攻克五步法:韩宁波的实战教学手册在技术攻坚领域,国家二级运动员、资深技术教练韩宁波以"系统化思维分步验证"为核心,构建了技术难点攻克五步法。该模型融合问题定位、根因分析、方案设计、实施验证、知识沉淀五大环节&…

工程材料企业数据采集系统十大解决方案深度解析:从技术挑战到架构实践

在数字化转型的浪潮中,工程材料行业正面临着前所未有的挑战。作为建筑、制造、交通等国民经济支柱产业的基础,工程材料企业(涵盖水泥、混凝土、钢材、陶瓷、玻璃等)的生产过程复杂,设备种类繁多,数据源异构…

Nacos03:Nacos 服务端开启鉴权

文章目录一、修改配置文件二、启动Nacos一、修改配置文件 主要是为了开启鉴权,路径是:/conf/application.properties # 开启鉴权 nacos.core.auth.enabledtrue# 设置服务器令牌和服务器值 nacos.core.auth.server.identity.keynacos2026 nacos.core.auth…

接口测试:加密和签名

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、什么是加密以及解密?加密:在网络上传输的原始数据(明文)经过加密后形成(密文)传输&a…

冬之华章,人间暖梦

当秋风最后一丝余韵悄然消散,冬,便迈着沉稳而庄重的步伐,缓缓降临人间。它宛如一位冷峻而深邃的诗人,以天地为纸,以霜雪为墨,书写着属于自己的壮丽诗篇,又似一位温婉而细腻的画师,用…

MySQL数据可视化实战:从查询到图表

技术文章大纲:用MySQL玩转数据可视化 引言 数据可视化在现代数据分析中的重要性MySQL作为关系型数据库在数据处理中的优势结合MySQL与可视化工具的应用场景 MySQL数据准备与处理 设计适合可视化的数据表结构使用SQL查询提取关键数据(聚合、分组、排序…

什么是XSS攻击?分为哪几类?

网络安全中常见的攻击手段有很多,大致包括这些:DDoS攻击、XEE攻击、XSS攻击、CSRF攻击、SSRF攻击等。在之前的文章中小编大部分都为大家详细介绍过,那么什么是XSS攻击?其攻击原理有哪些?以下是详细的介绍。 什么是XSS攻击? XSS攻击通常指的…

C语言造轮子:从零打造底层利器

技术文章大纲:C语言造轮子大赛参赛背景与意义造轮子大赛的定义:通过重新实现基础库或工具,深入理解底层原理C语言的优势:贴近硬件、高效、适合底层开发参赛目标:提升编码能力、学习系统设计、社区技术交流常见轮子选题…

有哪些提供免抠PNG图片的网站?

找一张透明背景的PNG图片,曾经意味着要在设计软件里花费数小时进行精细的抠图,而如今,你只需要知道去哪里找。设计师们在寻找PNG素材时,主要面临几个难题:素材质量参差不齐、下载后需要二次处理的麻烦,以及…

Windows权限提升基础知识和命令

介绍 这篇文章是介绍window的权限提升,虽然不是一个全面的指南,但会试图覆盖主要的技术,常用的资源列表在文章底部,可供大家参考。 window权限提升基础知识 初始信息收集 在开始提权之前,我们需要了解操作系统基本的信息,如安装…

2026AI白皮书启示:婚姻诊断系统的技术解剖与测试攻坚战

(统计数据显示:截至2025年末,中国73.2%的夫妻使用过至少一款AI婚姻诊断工具,平均诊断准确率宣称达89%——这组数据背后隐藏着软件测试工程师构建的精密防线) 一、系统架构的测试风暴眼 1.1 多模态数据采集链的可靠性验…

静态代理IP+facebook账号,养号“神器”!

现在越来越多的用户开始做跨境出海,而跨境我们最常用的几个平台:Facebook、Instagram、TikTok、X、reddit等,基本上只要是涉及到营销都不可避免这些平台。我们以Facebook为例,大家都知道,Facebook新账号注册是非常麻烦…

台达AS系列PLC Modbus TCP网口上位机通信的C#监控与数据报表生成

台达AS系列PLC modbus TCP网口上位机通信,项目现场使用设备的C#源代码,监控设备每月每天的生产数据并生成Excel表格。最近在工业现场折腾台达AS系列PLC的Modbus TCP通讯,发现这玩意儿的协议实现和常规设备还真有点不一样。项目需求是抓取设备…

什么是逆向工程?应用领域有哪些?收藏这篇让你摸透逆向工程

核心结论:逆向工程就是 “反向拆解 学习复刻”,先搞懂别人的产品 / 技术怎么造的,再用这些思路做自己的东西,全程不碰原始代码或设计图的核心版权。 一、什么是逆向工程?(通俗版) 你可以把它想…

Mysql数据库常见函数(下)——日期时间函数

前两期我们分别学习了Mysql数据库中常见的字符函数和数值函数,那么本期我们一起来学习Mysql数据库中常见的日期时间函数。 ADDDATE(d,n):计算起始日期 d 加上 n 天的日期 实例: SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY); 返回结果:2017-06-25 ADDTIME…

Dify 结合 Coze MCP 工具实现智能图片生成:完整教程

摘要 本文将系统讲解如何在 Dify 平台上集成 Coze 的 MCP(Model Context Protocol)工具,以实现由大模型驱动的智能图片生成功能。内容涵盖环境准备、MCP 工具配置、Dify 中的集成方法,以及完整的端到端示例,帮助开发者…

【强烈收藏】告别拖拽节点:Agent + Skills 架构打造可进化数字员工

文章对比了传统可视化工作流与Agent Skills架构,提出了后者对前者的降维打击优势。详细介绍了Agent Skills的五步构建框架:拆分原子化能力、自然语言编排、中间态持久化、引用分摊传递、自我迭代进化。同时解决了稳定性、成本、门槛三大挑战&#xff0…

实战:爬取全网招聘数据并搭建分析平台

免费编程软件「pythonpycharm」 链接:https://pan.quark.cn/s/48a86be2fdc0一、为什么需要招聘数据分析?在求职市场,信息就是竞争力。无论是企业HR想优化招聘策略,还是求职者想找到最适合自己的岗位,都需要掌握足够的数…

缩短交付周期:汽车企业如何通过计划智能体实现高效协同?

缩短交付周期:汽车企业如何通过计划智能体实现高效协同?在当今高度竞争的汽车市场中,交付周期已成为衡量企业核心竞争力的关键指标。消费者渴望更快地提到自己定制化的新车,而漫长的等待时间无疑会直接导致客户流失和订单减少。然…