Java测试(11) --- selenium
- 测试用例方法以teat_开头 运行脚本的时候默认自动会运行test_开头的方法
- 普通方法不以test_开头 普通方法被test_开头的方法调用的时候才会运行
- 测试套件,把不同文件里的不同类里面的不同的测试方法组织起来放在一起运行
- (1)addTest 把不同文件不同类里面的测试方法一个一个添加
- (2)把不同文件中一个类里面所有的测试用例都添加进去的方法 makesuit TestLoader
- 把一个文件夹下的以某种形式命名的脚本文件中所有的测试用例都添加到测试套中 discover
1.测试用例的执行顺序
0~9、A~Z、a~z 依次进行比较
2.忽略测试用例的执行
对于不想运行的测试用例打标签:@unittest.skip("skipping")
3.unittest断言
测试的最终结果就是判断实际结果和预期结果是否相符
断言:判断实际结果和预期结果是否相符(相当于眼睛和大脑)
self.assertEqual(arg1,arg2,msg=") 预判表达式arg1,arg2相等
self.assertNotEqual(arg1,arg2,msg=") 预判表达式arg1,arg2不相等
self.assertTrue(arg1,msg=") 预判表达式arg1为真
self.assertFalse(arg1,msg=") 预判表达式arg1为假
4.HTML报告
运行一个测试套件,里面由上百个测试用例,如何集中并且清晰的查看测试用例执行结果
(1)将HTMLTestRunner.py添加到python安装目录下
(2)生成HTML报告的步骤
第一步:需要创建一个存放HTML报告的文件夹
curpath=sys.path[0]
if not os.path.exists(curpath+'/resultreport'):os.makedirs(curpath+'/resultreport')
第二步:解决重复命名的问题(用当前时间来命名)
now=time.strftime("%Y-%m-%d-%H %M %S,time.localtime(time.time()))
filename=curpath+'/resultreport/'+now+'/resultreport.html/'
第三步:报告的输出
with open(filename,'wb') as fp:runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"测试报告",description=u"用例执行情况",verbosity=2)suite=createsuite()runner.run(suite)
5.异常捕获和错误截图
目的:保留测试结果的现场
./image
"."代表当前文件所在的路径下
错误截图的API:get_screenshot_as_file()
def saveScreenAsPhoto(self,driver,file_name):if not os.path.exists("./image"):os.makedirs("./image")now=time.strftime("%Y%m%d_%H%M%S",time.localtime(time.time()))driver.get_screenshot_as_file("./image/"+now+"-"+file_name)time.sleep(3)
6.数据驱动
数据驱动就是用测试数据来驱动测试用例代码的执行
(1)安装ddt
(2)导包
from ddt import ddt,unpack,data,file_data
同时在类上面使用标签@ddt
(3)数据驱动方式
@data(value) 一次性传一个参数,括号中写参数
@data(value1,value2......) 一次性传递多个参数,需要用@unpack映射
@file_data("json文件")
@data(*解析数据的方法(txt/csv文件))
相关文章:
Java测试(11) --- selenium
测试用例方法以teat_开头 运行脚本的时候默认自动会运行test_开头的方法普通方法不以test_开头 普通方法被test_开头的方法调用的时候才会运行测试套件,把不同文件里的不同类里面的不同的测试方法组织起来放在一起运行(1)addTest 把不同…...
vue3 defineExpose 显示的指定组件需要暴露的属性
简介: 是 vue3 新增的一个 api ,用在 <script setup>中使用,用于显示的把组件的属性和方法暴露出来。可用于父子组件通信,子组件使用 defineExpose 将自身的方法或者属性暴露出去,父组件中通过 ref 获取子组件 D…...
算法通关村第十七关:黄金挑战-跳跃游戏问题
黄金挑战-跳跃游戏问题 1. 跳跃游戏 LeetCode 55 https://leetcode.cn/problems/jump-game/ 思路分析 关键是判断能否到达终点,不用管每一步跳跃到哪里,而是尽可能的跳跃到最远的位置 看最多能覆盖到哪里,只要不断更新能覆盖的距离&#x…...
Git GitHub GitLab
1、Git Git是一个开源的分布式版本控制系统,是一种工具软件,用于代码的存储和版本控制。 2、GitHub GitHub是一个基于Git实现的在线代码仓库,是目前全球最大的代码托管平台。 3、GitLab GitLab也是一个基于Git实现的在线代码仓库&#x…...
前端的规范
假如团队中的小伙伴在提交代码时没有遵循规范要求,只写了一个"fix"或"update,这会给其他小伙伴造成困扰,不得不花时间查看代码和推测逻辑。 不仅会浪费了时间和精力,可能会导致项目以下问题: 可读性差…...
嵌入式软件有限状态机的 C 语言实现
状态机模式是一种行为模式,通过多态实现不同状态的调转行为的确是一种很好的方法,只可惜在嵌入式环境下,有时只能写纯C代码,并且还需要考虑代码的重入和多任务请求跳转等情形,因此实现起来着实需要一番考虑。 近日在看…...
面试题常考:LRU缓存
题目: 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值&…...
Redis 教程 - 持久化
Redis 教程 - 持久化 在 Redis 中,持久化是指将数据从内存保存到磁盘上,以便在重启或服务器故障后仍能恢复数据。Redis 提供了两种持久化方式:RDB(Redis Database)和 AOF(Append-Only File)。本…...
2023 大学生数学建模竞赛-C题-第一问
题目: 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销…...
设计模式3 观察者模式
一 观察者模式 1.1 概述 观察者模式是一种行为模式,又称之为“发布/订阅”模式,在该模式中被观察的对象叫主题,依赖主题的对象被称为观察者,当主题发生改变时,会通知所有观察者进行更新。多个对象存在一对多的关系&a…...
如何防止网络安全攻击
为了防止网络安全攻击,以下是一些常见的防御措施和建议: 使用强密码:确保使用足够长、复杂且随机的密码,并定期更改密码。不要在多个账户中重复使用相同的密码。 更新和修补软件:定期更新操作系统、应用程序和安全补丁…...
怎么从0到1实现一个PHP框架?
写在前面 本人开发的框架在2021年年初开发完成,后面没有再做过任何维护和修改。是仅供大家参考交流的学习项目,请勿使用在生产环境,也勿用作商业用途。 框架地址: https://github.com/yijiebaiyi/fast_framework 整体思路 开发…...
脚本:python实现樱花树
文章目录 代码效果 代码 from turtle import * from random import * from math import * def tree(n, l):pd () # 下笔# 阴影效果t cos ( radians ( heading () 45 ) ) / 8 0.25pencolor ( t, t, t )pensize ( n / 3 )forward ( l ) # 画树枝if n > 0:b random () *…...
公司内部传文件怎么安全——「用绿盾透明加密软件」
为保证公司内部文件传递的安全性,可以使用天锐绿盾透明加密软件来进行保护。以下是具体的操作步骤: 在公司内部部署天锐绿盾加密软件,确保需要传递的文件都能受到加密保护。 在员工的工作电脑上安装天锐绿盾客户端,并设置好相关的…...
提高使用VS Code工作效率的技巧
提高使用VS Code工作效率的技巧 时间轴视图:本地源代码控制 时间轴视图为我们提供了内置的源代码控制。 我们中的许多人都知道 Git 和其他源代码控制工具有多么有用,它们可以帮助我们轻松跟踪文件更改并在需要时恢复到之前的状态。 因此,…...
软件系统兼容性测试都要注意哪些问题?
兼容性 软件兼容性测试具有相同的含义,它是任何第三方 Web 应用程序测试服务不可分割的一部分。在众多不同的设置中,最重要的是完全的客户满意度,并且可以通过全面的兼容性测试来达到最佳效果。众所周知,软件质量保证是克服 IT 挑…...
索尼 toio™应用创意开发征文|toio俄罗斯方块游戏
目录 引言 摘要 创意简述 准备工作|手工开始 代码编写|合理集成 使用体验|近乎奇妙 引言 索尼toio™编程机器人是一款引领技术创新的产品,为开发者提供了一个全新的编程和创造平台。toio™的设计旨在将技术、塑性和乐趣融为…...
C#事件event
事件模型的5个组成部分 事件拥有者(event source)(类对象)(有些书将其称为事件发布者) 事件成员(event)(事件拥有者的成员)(事件成员就是事件本身…...
气传导耳机什么牌子好?盘点五款好用的气传导耳机分享
对于气传导耳机,大家最关心的可能是佩戴会不会不舒服?音质好不好?会不会漏音?等问题。面对这些问题,今天我就为大家推荐几款市面上最好的气传导耳机,总有一款适合你的! ①NANK南卡00压气传导…...
业绩走低,毛利率下滑,海外市场能否成为极米科技救命稻草?
撰稿|行星 来源|贝多财经 8月30日,成都极米科技股份有限公司(SH:688696,下称“极米科技”)发布2023年半年度业绩报告。财报显示,极米科技2023年上半年的业绩出现了大幅下滑,其中收入同比减少两成…...
保姆级教程:用微信小程序测试号搞定getPhoneNumber功能(绕过企业认证限制)
微信小程序测试号实战:零成本解锁getPhoneNumber全流程指南 最近在帮朋友开发一个预约类小程序时,遇到了一个典型问题:需要获取用户手机号进行预约确认,但个人开发者账号无法直接调用getPhoneNumber接口。这让我想起了三年前第一次…...
高性能企业级数据集成架构设计:Pentaho Kettle 11.0核心引擎深度解析与部署指南
高性能企业级数据集成架构设计:Pentaho Kettle 11.0核心引擎深度解析与部署指南 【免费下载链接】pentaho-kettle Pentaho Data Integration ( ETL ) a.k.a Kettle 项目地址: https://gitcode.com/gh_mirrors/pe/pentaho-kettle Pentaho Data Integration&am…...
AI多模型协同架构:破解单点依赖与技术主权困局
1. 这不是科幻讨论,而是今天必须面对的产业现实 “AI未来:一个巨无霸,还是多个巨头?”——这个标题乍看像科技媒体的年终圆桌话题,但在我过去十年跟踪AI基础设施、模型服务与企业落地的实操中,它早已不是假…...
CANN-昇腾NPU分布式训练-8卡到64卡怎么线性扩展
8 卡训练 Llama2-7B 的吞吐约 1800 tokens/s/p。64 卡应该是 8 卡的 8 倍吗?实际上只能到 6-7 倍。缺失的 1-2 倍被通信开销吃了。这篇分析昇腾NPU上分布式训练的扩展效率。 扩展效率定义 扩展效率 实际加速比 / 理论加速比8 卡 → 64 卡:理论加速比 8…...
借助AI写教材,低查重实现,轻松打造符合需求的教材!
教材编写的挑战与AI工具解决方案 在教材编写的过程中,如何平衡原创性与合规性是一个重要的挑战。借鉴优秀教材的知识内容时,常常会担心重复率过高;而自己独立表述知识点,又得顾虑逻辑不严密、内容不准确等问题。引用他人研究成果…...
终极QQ空间备份指南:用GetQzonehistory永久保存你的青春记忆
终极QQ空间备份指南:用GetQzonehistory永久保存你的青春记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否也曾担心多年积累的QQ空间说说会随着时间消失?…...
本地部署DeepSeek-V2.5遇到OOM?3类内存泄漏场景,90%开发者第2步就踩雷!
更多请点击: https://codechina.net 第一章:本地部署DeepSeek-V2.5的内存风险全景认知 本地部署DeepSeek-V2.5模型时,内存资源消耗远超常规LLM推理场景,其核心风险源于模型结构设计、量化策略兼容性及运行时上下文管理三重叠加效…...
基于FPGA的嵌入式频谱分析仪设计:低功耗实时信号处理方案
1. 项目概述:为什么要在FPGA上做频谱分析仪?做射频测试的工程师,对频谱分析仪肯定不陌生。实验室里动辄几十万上百万的台式机,性能强悍,功能全面,但有个问题:它离不开实验室。当你需要做外场测试…...
【Lovable前端黄金标准】:基于87万行生产代码分析出的4项可量化体验指标及达标路径
更多请点击: https://intelliparadigm.com 第一章:Lovable前端黄金标准的提出背景与核心价值 在现代Web应用复杂度持续攀升、用户期望指数级增长的背景下,前端开发已从“功能可用”迈向“体验可感、情感可触”的新阶段。传统以性能、兼容性、…...
如何快速掌握Subtitle Edit:免费开源字幕编辑器的终极指南
如何快速掌握Subtitle Edit:免费开源字幕编辑器的终极指南 【免费下载链接】subtitleedit the subtitle editor :) 项目地址: https://gitcode.com/gh_mirrors/su/subtitleedit 想要为视频添加专业字幕却苦于找不到合适的工具?Subtitle Edit作为一…...
