当前位置: 首页 > news >正文

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 显示的指定组件需要暴露的属性

简介&#xff1a; 是 vue3 新增的一个 api &#xff0c;用在 <script setup>中使用&#xff0c;用于显示的把组件的属性和方法暴露出来。可用于父子组件通信&#xff0c;子组件使用 defineExpose 将自身的方法或者属性暴露出去&#xff0c;父组件中通过 ref 获取子组件 D…...

算法通关村第十七关:黄金挑战-跳跃游戏问题

黄金挑战-跳跃游戏问题 1. 跳跃游戏 LeetCode 55 https://leetcode.cn/problems/jump-game/ 思路分析 关键是判断能否到达终点&#xff0c;不用管每一步跳跃到哪里&#xff0c;而是尽可能的跳跃到最远的位置 看最多能覆盖到哪里&#xff0c;只要不断更新能覆盖的距离&#x…...

Git GitHub GitLab

1、Git Git是一个开源的分布式版本控制系统&#xff0c;是一种工具软件&#xff0c;用于代码的存储和版本控制。 2、GitHub GitHub是一个基于Git实现的在线代码仓库&#xff0c;是目前全球最大的代码托管平台。 3、GitLab GitLab也是一个基于Git实现的在线代码仓库&#x…...

前端的规范

假如团队中的小伙伴在提交代码时没有遵循规范要求&#xff0c;只写了一个"fix"或"update&#xff0c;这会给其他小伙伴造成困扰&#xff0c;不得不花时间查看代码和推测逻辑。 不仅会浪费了时间和精力&#xff0c;可能会导致项目以下问题&#xff1a; 可读性差…...

嵌入式软件有限状态机的 C 语言实现

状态机模式是一种行为模式&#xff0c;通过多态实现不同状态的调转行为的确是一种很好的方法&#xff0c;只可惜在嵌入式环境下&#xff0c;有时只能写纯C代码&#xff0c;并且还需要考虑代码的重入和多任务请求跳转等情形&#xff0c;因此实现起来着实需要一番考虑。 近日在看…...

面试题常考:LRU缓存

题目&#xff1a; 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&…...

Redis 教程 - 持久化

Redis 教程 - 持久化 在 Redis 中&#xff0c;持久化是指将数据从内存保存到磁盘上&#xff0c;以便在重启或服务器故障后仍能恢复数据。Redis 提供了两种持久化方式&#xff1a;RDB&#xff08;Redis Database&#xff09;和 AOF&#xff08;Append-Only File&#xff09;。本…...

2023 大学生数学建模竞赛-C题-第一问

题目&#xff1a; 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c;商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销…...

设计模式3 观察者模式

一 观察者模式 1.1 概述 观察者模式是一种行为模式&#xff0c;又称之为“发布/订阅”模式&#xff0c;在该模式中被观察的对象叫主题&#xff0c;依赖主题的对象被称为观察者&#xff0c;当主题发生改变时&#xff0c;会通知所有观察者进行更新。多个对象存在一对多的关系&a…...

如何防止网络安全攻击

为了防止网络安全攻击&#xff0c;以下是一些常见的防御措施和建议&#xff1a; 使用强密码&#xff1a;确保使用足够长、复杂且随机的密码&#xff0c;并定期更改密码。不要在多个账户中重复使用相同的密码。 更新和修补软件&#xff1a;定期更新操作系统、应用程序和安全补丁…...

怎么从0到1实现一个PHP框架?

写在前面 本人开发的框架在2021年年初开发完成&#xff0c;后面没有再做过任何维护和修改。是仅供大家参考交流的学习项目&#xff0c;请勿使用在生产环境&#xff0c;也勿用作商业用途。 框架地址&#xff1a; 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 () *…...

公司内部传文件怎么安全——「用绿盾透明加密软件」

为保证公司内部文件传递的安全性&#xff0c;可以使用天锐绿盾透明加密软件来进行保护。以下是具体的操作步骤&#xff1a; 在公司内部部署天锐绿盾加密软件&#xff0c;确保需要传递的文件都能受到加密保护。 在员工的工作电脑上安装天锐绿盾客户端&#xff0c;并设置好相关的…...

提高使用VS Code工作效率的技巧

提高使用VS Code工作效率的技巧 时间轴视图&#xff1a;本地源代码控制 时间轴视图为我们提供了内置的源代码控制。 我们中的许多人都知道 Git 和其他源代码控制工具有多么有用&#xff0c;它们可以帮助我们轻松跟踪文件更改并在需要时恢复到之前的状态。 因此&#xff0c;…...

软件系统兼容性测试都要注意哪些问题?

兼容性 软件兼容性测试具有相同的含义&#xff0c;它是任何第三方 Web 应用程序测试服务不可分割的一部分。在众多不同的设置中&#xff0c;最重要的是完全的客户满意度&#xff0c;并且可以通过全面的兼容性测试来达到最佳效果。众所周知&#xff0c;软件质量保证是克服 IT 挑…...

索尼 toio™应用创意开发征文|toio俄罗斯方块游戏

目录 引言 摘要 创意简述 准备工作&#xff5c;手工开始 代码编写&#xff5c;合理集成 使用体验&#xff5c;近乎奇妙 引言 索尼toio™编程机器人是一款引领技术创新的产品&#xff0c;为开发者提供了一个全新的编程和创造平台。toio™的设计旨在将技术、塑性和乐趣融为…...

C#事件event

事件模型的5个组成部分 事件拥有者&#xff08;event source&#xff09;&#xff08;类对象&#xff09;&#xff08;有些书将其称为事件发布者&#xff09; 事件成员&#xff08;event&#xff09;&#xff08;事件拥有者的成员&#xff09;&#xff08;事件成员就是事件本身…...

气传导耳机什么牌子好?盘点五款好用的气传导耳机分享

​对于气传导耳机&#xff0c;大家最关心的可能是佩戴会不会不舒服&#xff1f;音质好不好&#xff1f;会不会漏音&#xff1f;等问题。面对这些问题&#xff0c;今天我就为大家推荐几款市面上最好的气传导耳机&#xff0c;总有一款适合你的&#xff01; ①NANK南卡00压气传导…...

业绩走低,毛利率下滑,海外市场能否成为极米科技救命稻草?

撰稿|行星 来源|贝多财经 8月30日&#xff0c;成都极米科技股份有限公司&#xff08;SH:688696&#xff0c;下称“极米科技”&#xff09;发布2023年半年度业绩报告。财报显示&#xff0c;极米科技2023年上半年的业绩出现了大幅下滑&#xff0c;其中收入同比减少两成&#xf…...

千问3.5-2B在办公提效场景:会议白板照片文字提取+要点总结实战

千问3.5-2B在办公提效场景&#xff1a;会议白板照片文字提取要点总结实战 1. 办公场景的痛点与解决方案 1.1 会议记录的传统困境 每次开完会&#xff0c;最让人头疼的就是整理会议记录了。特别是那些在白板上写满讨论要点的会议&#xff0c;你需要&#xff1a; 对着白板照片…...

把openEuler当微服务跑:Docker Compose编排实战,管理Nginx+MySQL多容器应用

微服务架构下的openEuler容器化实践&#xff1a;NginxMySQL多容器编排指南 1. 云原生时代的轻量级操作系统选择 在容器化技术席卷全球的今天&#xff0c;开发者们越来越倾向于将操作系统本身也视为可编排的服务单元。openEuler作为一款专为云原生场景优化的Linux发行版&#xf…...

抖音批量下载神器:免费一键收藏创作者全部作品

抖音批量下载神器&#xff1a;免费一键收藏创作者全部作品 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音…...

IP查询API性能评测指南:从响应时间到QPS的完整评估方法

在广告投放、反作弊、内容风控、日志分析等系统中&#xff0c;IP地理位置查询通常是高频、基础、不可或缺的环节。然而&#xff0c;很多团队在技术选型时往往停留在“能查到就行”的层面&#xff0c;忽视了其对系统性能、稳定性与长期成本的影响。 本文从技术评估角度出发&…...

SEO_避开这些SEO误区,优化效果事半功倍

SEO误区&#xff1a;避开这些误区&#xff0c;优化效果事半功倍 在当今竞争激烈的互联网环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;成为了每一个网站主的必修课。不少人在SEO实践中却犯下了一些常见的误区&#xff0c;这些误区不仅没有提升网站的排名&#x…...

万象视界灵坛基础教程:PyTorch+Transformers环境搭建与CLIP零样本推理入门

万象视界灵坛基础教程&#xff1a;PyTorchTransformers环境搭建与CLIP零样本推理入门 1. 环境准备与快速部署 1.1 系统要求 Python 3.8或更高版本支持CUDA的NVIDIA GPU&#xff08;推荐&#xff09;至少8GB显存&#xff08;CLIP-ViT-L/14模型需求&#xff09;10GB以上可用磁…...

新手福音:无需github,在快马平台轻松入门第一个web应用

最近在学前端开发时&#xff0c;发现很多教程都推荐从GitHub克隆项目来练习&#xff0c;但GitHub经常访问不稳定&#xff0c;对新手特别不友好。好在发现了InsCode(快马)平台&#xff0c;不用折腾GitHub就能直接上手写代码&#xff0c;特别适合我这种刚入门的小白。今天就用它做…...

新手福音:在快马用ai生成你的第一个notepad编程入门项目

作为一个刚接触编程的新手&#xff0c;我完全理解那种面对空白编辑器时的迷茫感。还记得第一次想用Notepad写代码时&#xff0c;光是下载安装就折腾了半天。今天分享一个超实用的方法&#xff0c;用InsCode(快马)平台就能一键生成完整的入门指南&#xff0c;把下载、安装、写第…...

别再只用labelme了!用ENVI 5.3的ROI工具给遥感影像打标签,效率翻倍

遥感影像标注革命&#xff1a;ENVI 5.3 ROI工具如何让深度学习标签制作效率提升300% 当无人机航拍的高清影像铺满整个屏幕&#xff0c;标注员的手指在鼠标和键盘间机械重复着点击、拖拽、保存的动作——这是许多刚接触遥感影像深度学习的研究者再熟悉不过的场景。传统标注工具在…...

万象视界灵坛实战教程:构建小红书爆款笔记封面图‘高点击率特征’预测模型

万象视界灵坛实战教程&#xff1a;构建小红书爆款笔记封面图高点击率特征预测模型 1. 项目背景与价值 在内容创作领域&#xff0c;封面图的质量直接影响用户点击率。小红书平台数据显示&#xff0c;优质封面图能带来300%以上的点击率提升。然而&#xff0c;传统封面设计依赖人…...