简介
好久没有更新博客了,博友们是不是有点等不及了。不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的。从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完整的python+appium自动化测试框架。
框架背景
前面我们已经学习了Appium各种元素定位,手势操作、数据配置、Pageobject设计模式等等。但是前面的功能都是比较零散的,没有整体融合起来,实际项目实践过程中我们需要综合运用,那么本章节我们将结合之前所学的内容,从0到1搭建一个完整的python+appium自动化测试框架。
框架功能
- 业务功能的封装
- 测试用例封装
- 测试包管理
- 截图处理
- 断言处理
- 日志获取
- 测试报告生成
- 数据驱动
- 数据配置
- Win10 64Bit
- Appium 1.7.2
- 考研帮App Android版3.1.0
- 夜神模拟器 Android 5.1.1
测试案例
测试环境
1.宏哥的系统环境是Windows 10版本 64位系统
2.宏哥的dk版本:"1.8.0_181"
3.宏哥的appium版本:1.4.16
4.selenium:3.141.0
安装selenium:
输入指令pip install selenium
验证安装成功:pip show selenium
5.测试设备:Android 5.1.1 (不能低于5.0版本)
6.Python:3.7.2
命令:python -V ,回车即可。
7.测试App:
考研帮Android app V3.1.0
覆盖用例
1.登录场景
用户名 | 密码 |
北京宏哥2018 | bjhg2018 |
北京宏哥2019 | bjhg2019 |
666 | 222 |
2.代码实现
3.参考代码
test_login.py
# coding=utf-8 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 ''' Created on 2019-9-25 @author: 北京-宏哥 Project: Appium自动化测试框架综合实践 - 框架简介 - 登录 ''' # 3.导入模块 from common.myunit import StartEnd from businessView.loginView import LoginView import unittest import logging class TestLogin(StartEnd): csv_file='../data/account.csv' @unittest.skip('test_login_bjhg2019') def test_login_bjhg2019(self): logging.info('======test_login_bjhg2019=====') l=LoginView(self.driver) data=l.get_csv_data(self.csv_file,2) l.login_action(data[0],data[1]) self.assertTrue(l.check_loginStatus()) # @unittest.skip('skip test_login_bjhg2018') def test_login_bjhg2018(self): logging.info('======test_login_bjhg2018=====') l=LoginView(self.driver) data = l.get_csv_data(self.csv_file, 1) l.login_action(data[0], data[1]) self.assertTrue(l.check_loginStatus()) @unittest.skip('test_login_error') def test_login_error(self): logging.info('======test_login_error=====') l = LoginView(self.driver) data = l.get_csv_data(self.csv_file, 3) l.login_action(data[0], data[1]) self.assertTrue(l.check_loginStatus(),msg='login fail!') if __name__ == '__main__': unittest.main()
1.注册场景
注册一个新的账号(账户和密码可以随机生成),完善院校和专业信息 (如:院校:上海-同济大学 专业:经济学类-统计学-经济统计学)
2.代码实现
3.参考代码
test_register.py
# coding=utf-8 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 ''' Created on 2019-9-25 @author: 北京-宏哥 Project: Appium自动化测试框架综合实践 - 框架简介 - 注册 ''' # 3.导入模块 from common.myunit import StartEnd from businessView.registerView import RegisterView import logging,random,unittest class RegisterTest(StartEnd): def test_user_register(self): logging.info('======test_user_register======') r=RegisterView(self.driver) username = 'zxw2018' + 'fly' + str(random.randint(1000, 9000)) password = 'zxw2018' + str(random.randint(1000, 9000)) email = '51zxw' + str(random.randint(1000, 9000)) + '@163.com' self.assertTrue(r.register_action(username,password,email)) if __name__ == '__main__': unittest.main()
框架设计图
这里宏哥根据两个场景设计了大致框架
小结
今天就分享这么多吧,后边就由宏哥手把手的教你从0到1的搭建一个完整的python+appium的自动化测试框架。