用HTMLTestRunner导出测试报告:
先下载HTMLTestRunner.py文件。这里以别人改编的HTMLTestRunnerCN为例。
下载地址https://github.com/findyou/HTMLTestRunnerCN
暂时先把下载的文件放在自动化脚本的同级目录下,然后我们可以开始编辑我们的脚本
from appium import webdriver import time import adbbase import unittest import HTMLTestRunnerCN class HappyFoodTest(unittest.TestCase): #自动化框架,继承unittest.TestCase """开心粮票""" @classmethod def setUpClass(cls): #准备测试环境,每个用例前执行 desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['paltformVersion'] = adbbase.platformVersion() desired_caps['deviceName'] = adbbase.platformName() desired_caps['appPackage'] = adbbase.appPackage() desired_caps['appActivity'] = adbbase.appActivity() global driver driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) time.sleep(5) def test_login(self): #用例,以test开头;登录测试 """登录""" driver.find_element_by_id("phoneNumber").send_keys("13575220850") driver.find_element_by_id("passWord").send_keys("q0125016") driver.back() driver.find_element_by_id("login").click() time.sleep(1) try: #自动点击app授权弹框 button = driver.find_element_by_xpath("//android.widget.Button[contains(@text,'允许')]") button.click() except: print("自动点击应用app授权出错!") time.sleep(1) title = driver.find_element_by_id("com.happy.food:id/title").text self.assertEqual(title,"开心粮票") def test_billing_details(self): """结算详情""" driver.find_element_by_id("com.happy.food:id/mine").click() driver.find_element_by_id("com.happy.food:id/balanceDetail").click() title = driver.find_element_by_id("com.happy.food:id/title").text self.assertEqual(title,"结算详情") @classmethod def tearDownClass(cls): #清理环境,用例执行完后执行 driver.quit() def Suite(): suiteTest = unittest.TestSuite() suiteTest.addTest(HappyFoodTest("test_login")) suiteTest.addTest(HappyFoodTest("test_billing_details")) return suiteTest if __name__ == '__main__': # unittest.main() now = time.strftime("%Y-%m-%d--%H;%M", time.localtime()) filepath = './report/'+ now + '.html' fp = open(filepath,'wb') runner = HTMLTestRunnerCN.HTMLTestRunner( stream=fp, title='自动化报告', tester='lin' ) runner.run(Suite()) fp.close()
time.strftime("%Y-%m-%d--%H;%M",time.localtime()) 为获取当前时间,以“2018-04-19--22;00”的方式显示(因为文件命名里不能有":",所以暂用";"替代)
filepath 为测试用例的保存路径
运行测试脚本,运行完后将自动生成测试报告在./report/ 文件夹里