news 2026/6/15 18:20:15

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作自动化测试如何实现用例设计实例?

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

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

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()函数,以及如何编写自动化用例与脚本等。

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

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:25:08

2026 精选 AI 论文工具全攻略:从全流程到专项场景精准适配

随着《2026 全球 AI 学术写作行业白皮书》数据的发布及 200 高校师生实测反馈的汇总,AI 论文工具市场已迈入 “合规为基、场景为王、协同为要” 的全新阶段。当前全球高校 AI 论文工具使用率突破 45%,用户核心诉求已从单纯的 “效率提升”,全…

作者头像 李华
网站建设 2026/6/14 5:37:21

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

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

作者头像 李华
网站建设 2026/6/14 0:34:49

天津大学_人工智能报告:历史、现状和未来

摘要:本文是天津大学人工智能专题报告,系统梳理人工智能 “三起两落” 的发展历程,聚焦大模型时代的技术演进、国内外厂商布局与国家政策支持,详解 “东数西算” 战略下国家、省份、企业、高校等多层面算力基础设施建设现状与国产…

作者头像 李华
网站建设 2026/6/13 21:48:20

Qwen3-VL大模型核心技术揭秘:多模态融合与长程理解机制详解

Qwen3-VL是Qwen系列最新多模态大模型,采用三模块架构(视觉编码器、视觉-语言融合模块、大语言模型),通过SigLIP-2视觉编码器、DeepStack多层次视觉注入和Interleaved MRoPE位置建模等技术实现多模态融合。模型采用四阶段预训练策略逐步构建能力&#xff…

作者头像 李华
网站建设 2026/6/13 16:45:48

智能体路由完全指南:从概念到实现,助你掌握大模型核心架构

智能体路由是多智能体系统的核心动态决策机制,根据用户输入和上下文信息将请求导向最适合的处理路径。应用场景包括订单查询、产品信息检索和技术支持等。实现方法主要有四种:基于规则的路由、基于LLM的路由、基于嵌入的路由和基于机器学习模型的路由。未…

作者头像 李华
网站建设 2026/6/10 16:04:16

AI Agent进化论:从“乖宝宝“到“探险家“的大模型学习指南

本文探讨了AI Agent从"乖宝宝"到"探险家"的进化历程。现代AI虽反应变慢、规划有限,却能处理未知情况,实现从"背诵课文"到"即兴创作"的飞跃。工程师通过分层配合和任务区分优化AI性能,未来将实现无感…

作者头像 李华