当前位置: 首页 > 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文件))

http://www.lryc.cn/news/158810.html

相关文章:

  • vue3 defineExpose 显示的指定组件需要暴露的属性
  • 算法通关村第十七关:黄金挑战-跳跃游戏问题
  • Git GitHub GitLab
  • 前端的规范
  • 嵌入式软件有限状态机的 C 语言实现
  • 面试题常考:LRU缓存
  • Redis 教程 - 持久化
  • 2023 大学生数学建模竞赛-C题-第一问
  • 设计模式3 观察者模式
  • 如何防止网络安全攻击
  • 怎么从0到1实现一个PHP框架?
  • 脚本:python实现樱花树
  • 公司内部传文件怎么安全——「用绿盾透明加密软件」
  • 提高使用VS Code工作效率的技巧
  • 软件系统兼容性测试都要注意哪些问题?
  • 索尼 toio™应用创意开发征文|toio俄罗斯方块游戏
  • C#事件event
  • 气传导耳机什么牌子好?盘点五款好用的气传导耳机分享
  • 业绩走低,毛利率下滑,海外市场能否成为极米科技救命稻草?
  • 轻松敏捷开发流程之Scrum
  • Vue3+Element Plus实现el-table跨行显示(非脚手架)
  • 生成订单30分钟未支付,则自动取消,该怎么实现?
  • WebGIS外包开发流程
  • pytorch学习——LSTM和GRU
  • 【Python】Python 利用模块实现单例模式
  • 雅思写作 三小时浓缩学习顾家北 笔记总结(四)
  • 深入学习与探索:高级数据结构与复杂算法
  • CV:计算机视觉CV运用领域
  • 开源机密计算平台:蓬莱-OpenHarmony
  • 大一大二一心学算法的利弊