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报告的文件夹

python 复制代码
curpath=sys.path[0]
if not os.path.exists(curpath+'/resultreport'):
    os.makedirs(curpath+'/resultreport')

第二步:解决重复命名的问题(用当前时间来命名)

python 复制代码
now=time.strftime("%Y-%m-%d-%H %M %S,time.localtime(time.time()))
filename=curpath+'/resultreport/'+now+'/resultreport.html/'

第三步:报告的输出

python 复制代码
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()

python 复制代码
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文件))

相关推荐
刽子手发艺12 分钟前
Selenium+OpenCV处理滑块验证问题
opencv·selenium·webpack
bst@微胖子16 分钟前
Python高级语法之selenium
开发语言·python·selenium
王小义笔记20 分钟前
Postman如何流畅使用DeepSeek
开发语言·测试工具·lua·postman·deepseek
敲代码的小王!1 小时前
MD5加密算法和BCrypt密码加密算法
java·算法·安全
罗政6 小时前
冒险岛079 V8 整合版源码搭建教程+IDEA启动
java·ide·intellij-idea
架构默片7 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python
不只会拍照的程序猿7 小时前
从插入排序到希尔排序
java·开发语言·数据结构·算法·排序算法
我荔枝呢!8 小时前
Java中的hashCode和equals方法之间有什么联系
java·开发语言·equals·hashcode
望未来无悔9 小时前
系统学习算法:专题十一 floodfill算法
java·算法
黑客老李9 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
java·运维·服务器·前端·xss