学习笔记——测试进阶之路 学习笔记:Appium+Pytest+Jenkins+Allure 持续集成平台 (上)
大海
·
2020年04月24日
·
1107 次阅读
「原创声明:保留所有权利,禁止转载」
背景介绍
- 批量跑指定脚本:我们可以利用 Pytest 批量跑指定目录下的 UI 自动化脚本
- 生成测试报告:使用 Allure 和 HTML Plugin 插件,完成测试用例的结果输出
- 脚本定时任务:使用 Jenkins 的 build periodically 完成
- 邮件通知:使用 Jenkins 的 Extended E-mail Notification 插件
代码结构
测试用例
使用用户登录的例子进行说明
class XXX():
logging.basicConfig(level=logging.DEBUG, filename="D:/XXX/XXX/Log/LoginLOG.log",
format="%(asctime)s%(filename)s [line:%(lineno)d] %(levelname)s %(message)s")
with open('D:/XXX/XXX/Config/desired_caps.yaml', 'r', encoding='UTF-8') as file:
data = yaml.load(file, Loader=yaml.FullLoader)
# 把YAML中的字段值一一存放到desired_caps
desired_caps = {}
desired_caps['platformName'] = data['platformName']
desired_caps['platformVersion'] = data['platformVersion']
desired_caps['deviceName'] = data['deviceName']
# base_dir = os.path.dirname(os.path.dirname(__file__))
# app_path = os.path.join(base_dir, 'app', data['appname'])
# desired_caps['app'] = app_path
desired_caps['udid'] = data['udid']
desired_caps['appPackage'] = data['appPackage']
desired_caps['appActivity'] = data['appActivity']
desired_caps['noReset'] = data['noReset']
# 启动远程端口服务
driver = webdriver.Remote('http://' + str(data['ip']) + ':' + str(data['port']) + '/wd/hub', desired_caps)
driver.implicitly_wait(5)
@allure.feature('XXX_00')
@allure.story('test_story_00')
@allure.severity('critical')
def XXX_00(self):
"""
测试用例1:登录
:return:
"""
gp = GuidePage(self.driver)
gp.click_enter()
print("点击立即体验,成功进入")
lgp = LoginPage(self.driver)
time.sleep(2)
# 点击同意授权
lgp.agree()
# 输入帐号密码,并登录
f = open("D:/XXX/XXX/Config/account.txt")
lines = f.readlines()
for line in lines:
# 替换掉每多余符号
line = line.replace("\"", "").replace("\n", "")
lineList = line.split(",")
account1 = lineList[0]
account2 = lineList[1]
lgp.input(account1, account2)
lgp.login()
print("登录成功")
启动 Appium+ 连接模拟器
appium -a 127.0.0.1 -p 4723 -U 127.0.0.1:62001 --session-override
Appium 运行
模拟器运行
补充说明
连接夜神模拟器
打开夜神模拟器,打开设置,调成手机模式,初次进入的话,进入设置,点击版本号 5 次,可以激活使用开发者模式,进入后打开 USB 调试功能。
打开文件资源管理器,进入夜神模拟器的安装位置,在地址栏输入 cmd,回车,会打开 cmd 窗口,进入的路径就是夜神模拟器的安装位置。我的默认安装位置:C:\Program Files (x86)\Nox\bin。
输入 nox_adb.exe connect 127.0.0.1:62001 即可以连接到 adb,或者是 adb connect 127.0.0.1:62001。
切换到 doc 输入 adb devices,可以显示到连接上的设备。
获取当前窗口信息
- 获得当前活动窗口的信息,包名以及活动窗体
- 命令:adb shell "dumpsys window windows | grep mCurrent"
可能会遇到的问题
- 在使用安卓模拟器定位页面元素时,启动 uiautomatorviewer.bat ,但是报错: Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException
- 解决办法:关闭 appium
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。