当前位置: 首页 > 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…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...