设为首页 加入收藏

TOP

Appium基于Python unittest自动化测试 & 自动化测试框架 -- PO并生成html测试报告(一)
2017-12-23 06:06:50 】 浏览:342
Tags:Appium 基于 Python unittest 自动化 测试 框架 生成 html 报告

基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告

代码示例:

 1 #利用unittest并生成测试报告
 2 class Appium_test(unittest.TestCase):
 3     """appium测试类"""
 4     def setUp(self):
 5         desired_caps = {
 6             'platformName': 'Android',
 7             'deviceName': 'Android Emulator',#可有可无,这里是指我的模拟器
 8             'platformVersion': '5.0',
 9             # apk包名
10             'appPackage': 'com.smartisan.notes',
11             # apk的launcherActivity
12             'appActivity': 'com.smartisan.notes.NewNotesActivity',
13             #如果存在activity之间的切换可以用这个
14             # 'appWaitActivity':'.MainActivity',
15             'unicodeKeyboard': True,
16             #隐藏手机中的软键盘
17             'resetKeyboard': True
18             }
19         self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
20         time.sleep(5)
21         self.verificationErrors = "今天天气不错在家学习!"        #设置的断言
22 
23     def tearDown(self):
24         time.sleep(10)
25         assertt = self.driver.find_element_by_id("com.smartisan.notes:id/list_rtf_view").text
26         # print(assertt)   #调试用
27         self.assertEqual(assertt,self.verificationErrors,msg="验证失败!")
28         #断言:实际结果,预期结果,错误信息
29         self.driver.quit()
30 
31     def test_creat(self):
32         """记事本中新增一条记录"""
33         self.driver.find_element_by_id("com.smartisan.notes:id/add_button").click()
34         time.sleep(3)
35         self.driver.find_element_by_class_name("android.widget.EditText").send_keys("今天天气不错在家学习!")
36         self.driver.find_element_by_id("com.smartisan.notes:id/send_finish_button").click()
37 
38 suite = unittest.TestSuite()
39 suite.addTest(Appium_test('test_creat'))
40 
41 report_file = ".\\appium_report.html"
42 fp  = open(report_file,'wb')
43 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="appium测试报告",description='新增一条笔记并保存')
44 runner.run(suite)
45 fp.close()

生成测试报告:

Appium自动化测试PO模型:

其中,main.py为框架的主入口,test_creat.py调用creat_page.py,creat_page.py调用base_page.py。

PO代码示例:

main.py

 1 import unittest
 2 import HTMLTestRunner
 3 
 4 #相对路径
 5 testcase_path = ".\\testcase"
 6 report_path = ".\\report\\appium_report.html"
 7 def creat_suite():
 8     uit = unittest.TestSuite()
 9     discover = unittest.defaultTestLoader.discover(testcase_path,pattern="test_*.py")
10     for test_suite in discover:
11         # print(test_suite)
12         for test_case in test_suite:
13             uit.addTest(test_case)
14     return uit
15 
16 suite = creat_suite()
17 fp = open(report_path,"wb")
18 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="测试结果",description="appium新建笔记测试结果")
19 runner.run(suite)
20 fp.close()

test_creat.py

 1 from appium import webdriver
 2 import unittest
 3 from appiumframework.PO.creat_page import CreatPage
 4 import time
 5 
 6 class Test(unittest.TestCase):
 7     """自动化"""
 8     def setUp(self):
 9         desired_caps = {
10             'platformName': 'Android',
11             'deviceName': 'Android Emulator',#可有可无
12             'platformVersion': '5.0',
13             # apk包名
14             'appPackage': 'com.smartisan.notes',
15             # apk的launcherActivity
16             'appActivity': 'com.smartisan.notes.NewNotesActivity',
17             #如果存在activity之间的切换可以用这个
18             # 'appWaitActivity':'.MainActivity',
19             'unicodeKeyboard': True,
20             #隐藏手机中的软键盘
21             'resetKeyboard': True
22             }
23         self.driver = webdriver.Remote('http://127.0.0
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇生日提醒 下一篇每天一点爬虫(一)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目