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

    1. curpath=sys.path[0]
    2. if not os.path.exists(curpath+'/resultreport'):
    3. os.makedirs(curpath+'/resultreport')

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

    1. now=time.strftime("%Y-%m-%d-%H %M %S,time.localtime(time.time()))
    2. filename=curpath+'/resultreport/'+now+'/resultreport.html/'

    第三步:报告的输出

    1. with open(filename,'wb') as fp:
    2. runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"测试报告",
    3. description=u"用例执行情况",verbosity=2)
    4. suite=createsuite()
    5. runner.run(suite)

    5.异常捕获和错误截图

    目的:保留测试结果的现场

    ./image

    "."代表当前文件所在的路径下

    错误截图的API:get_screenshot_as_file()

    1. def saveScreenAsPhoto(self,driver,file_name):
    2. if not os.path.exists("./image"):
    3. os.makedirs("./image")
    4. now=time.strftime("%Y%m%d_%H%M%S",time.localtime(time.time()))
    5. driver.get_screenshot_as_file("./image/"+now+"-"+file_name)
    6. 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文件))

  • 相关阅读:
    Spring 依赖注入
    4.0、C语言——goto语句
    神经网络 深度神经网络,主流的神经网络的框架
    第六季完美童模 代言人段沫如 全球赛个人风采展示
    蓝桥杯前端Web赛道-新鲜的蔬菜
    [游戏开发][Unity] UGUI上使用 ParticleSystem支持排序渲染
    参与抖音官方活动:开启抖音小店的曝光与销售新机会
    程序环境、预处理和宏
    洛必达法则讲解和例题
    1.1 linux命令
  • 原文地址:https://blog.csdn.net/m0_58272200/article/details/132733256