• appium+python+windows执行测试用例,并使用HTMLTestRunner输出测试报告


    搭建环境时有一个问题,就是在每个测试用例完成之后都会执行tearDown,然后重新setUp,这样导致脚本的执行效率偏低,而且会有大量的重复性的步骤。当然有时测试脚本确实需要每次都重新开启一个干净的app。

    下面说下怎样让一个测试用例执行完毕后接着执行后面的测试用例而不是重置。

    复制代码
    #coding:utf-8
    __author__ = 'justwin'
    import unittest
    import os.path
    from appium import webdriver
    from time import sleep
    import HTMLTestRunner
    import time

    class Dttest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('start setup')

    desired_caps = dict(platformName='Android', deviceName='b67201a', platformVersion='5.0', appPackage='com.taobao.taobao',
    appActivity='com.taobao.tao.homepage.MainActivity3')

    cls.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    @classmethod
    def tearDownClass(cls):
    cls.driver.quit()
    print('tearDown')

    def test_search(self):
    time.sleep(5)
    self.driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click() #点击搜索框
    sleep(5)
    self.driver.press_keycode(4) #点击返回键
    sleep(2)
    self.driver.press_keycode(4) #点击返回键
    print('search passed')
    sleep(2)

    def test_click(self):
    self.driver.find_element_by_id("com.taobao.taobao:id/bar_search").click() #点击扫一扫
    sleep(2)
    self.driver.press_keycode(4) #点击返回键
    print('click passed')

    if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(Dttest('test_search'))
    suite.addTest(Dttest('test_click'))
    unittest.TextTestRunner(verbosity=2).run(suite)
    runner.run(suite)
    fp.close()
    复制代码

    这是使用的是Python的unittest中的setUpClass和tearDownClass,请见官方文档:https://docs.python.org/2/library/unittest.html

     会先执行test_search,执行完毕后再执行test_click,两个测试用例执行完毕后再执行tearDownClass

     ----------------------------------------这里是分割线----------------------------------------

    如果我们只能在命令行看到运行结果的话,有点不美,如果最后能有个report是不是能更好呢

    下面来说下测试报告的输出,用的是HTMLTestRunner

    代码如下

    复制代码
    #coding:utf-8
    __author__ = 'justwin'
    import unittest
    import os.path
    from appium import webdriver
    from time import sleep
    import HTMLTestRunner
    import time

    class Dttest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('start setup')

    desired_caps = dict(platformName='Android', deviceName='b67201a', platformVersion='5.0', appPackage='com.taobao.taobao',
    appActivity='com.taobao.tao.homepage.MainActivity3')

    cls.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    @classmethod
    def tearDownClass(cls):
    cls.driver.quit()
    print('tearDown')

    def test_search(self):
    time.sleep(5)
    self.driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click() #点击搜索框
    sleep(5)
    self.driver.press_keycode(4) #点击返回键
    sleep(2)
    self.driver.press_keycode(4) #点击返回键
    print('search passed')
    sleep(2)

    def test_click(self):
    self.driver.find_element_by_id("com.taobao.taobao:id/bar_search").click() #点击扫一扫
    sleep(2)
    self.driver.press_keycode(4) #点击返回键
    print('click passed')

    if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(Dttest('test_search'))
    suite.addTest(Dttest('test_click'))
    unittest.TextTestRunner(verbosity=2).run(suite)
    timestr = time.strftime('%Y-%m-%d_%H-%M-%S',time.localtime(time.time()))
    print (time.localtime(time.time()))
    filename = r'D: est-suite eprot' + timestr + '.html'
    print (timestr)
    print (filename)
    fp = open(filename,"wb")
    runner = HTMLTestRunner.HTMLTestRunner(
    stream=fp,
    title='result',
    description='report'
    )
    runner.run(suite)
    fp.close()
    复制代码

    由于windows系统中文件名不能包含冒号,所以对输出报告文件名中的时间格式做了修改,不然一直报错,搞了好长时间

    本文部分转载,部分属于自己改善,如有疑问,可联系删除

    最后会在我们设定的文件夹中生成一个以日期命名的html的报告,当然也可以自行改名(文件夹的名字先自己建好)

  • 相关阅读:
    python 安装xlrd指定版本操作,由于高级版本不直接支持打开xlsx
    python 无法升级问题解决
    将excel文件信息转为json信息,支持合并单元格
    关于数据库copy到excel时出现换行、换列行为处理方式
    关于spring security中设置header无效问题解决方式.
    mysql 提示ONLY_FULL_GROUP_BY的问题
    java 监听配置文件,无需重启服务即可热修改配置信息
    mysql 根据多表联查后的结果集更新一个表
    springboot阿里云视频点播服务实现上传视频和删除功能
    阿里云服务端SDK下载通过maven命令安装
  • 原文地址:https://www.cnblogs.com/justwin/p/6876678.html
Copyright © 2020-2023  润新知