新手区 新手使用 ATX - uiautomator2 并输出多个用例测试报告的方法

Zen广诺 · 2018年07月31日 · 1597 次阅读

目前 uiautomator2 好像不支持测试报告的输出,所以考虑用 unittest 测试框架里的 HTMLTestRunner(该修改的要修改好)实现测试报告的输出。给需要的人参考,新手上路,请多指教。

代码如下:
import unittest
import uiautomator2 as u2
import time
from Lib import HTMLTestRunner
import uiautomator2.ext.htmlreport as htmlreport

class xxx(unittest.TestCase):
@classmethod
def setUpClass(c):
c.u = u2.connect_usb('S9B4C17415007705')
c.u.healthcheck()
# 输出截图
hrp = htmlreport.HTMLReport(c.u,'report1')
hrp.patch_click()
c.u.toast.show("test begin", 1)

@classmethod
def tearDownClass(c):
c.u.toast.show("test over", 1)
c.u.app_stop_all()
c.u.service("uiautomator").stop()

def setUp(self):
self.d = self.u.session("测试的包名称")

def tearDown(self):
pass

def testOne(self):
self.d(resourceId="uid").set_text("lp")
self.d(resourceId="upwd").set_text("888888")
self.d.click(0.774, 0.628)
self.d.toast.show("testOne", 1)

def testTwo(self):
self.d(resourceId="uid").set_text("lh")
self.d(resourceId="upwd").set_text("888888")
self.d.click(0.774, 0.628)
self.d.toast.show("testTwo", 1)

def testThree(self):
self.d(resourceId="uid").set_text("dx")
self.d(resourceId="upwd").set_text("888888")
self.d.click(0.774, 0.628)
self.d.toast.show("testThree", 1)

if name == 'main':
suite = unittest.TestSuite()
suite.addTest(xxx('testOne'))
time.sleep(3)
suite.addTest(xxx('testTwo'))
time.sleep(3)
suite.addTest(xxx('testThree'))
time.sleep(3)
# 输出测试报告
filename = 'D:\python\atx.html'
fb = open(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fb, title='ATX', description='Atx Report')
runner.run(suite)
fb.close()

共收到 0 条回复 时间 点赞
3楼 已删除
Zen广诺 关闭了讨论 08月03日 13:15
Zen广诺 重新开启了讨论 08月29日 10:55
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册