Win Pycharm + Appium + 夜神模拟器 实现APP自动化
前言:
之前的文章已经介绍完通过使用 真机 进行APP自动化。此篇文章将介绍使用 夜神模拟器(Nox) 进行APP自动化测试。
一、基础配置
1.请移步此篇文章(https://www.cnblogs.com/TSmagic/p/15994256.html)
2.进行到此文章(五、下第5步即可)
五、安装Appium
5.点击Start Server
二、安装模拟器(重点开始)
1.下载地址
2.配置修改
◆打开安装目录,进入到bin目录(比如:D:\Nox\bin)
◆把之前安装好的Android SDK里的adb.exe文件(比如我的在D:\Android\SDK\platform-tools目录下)复制到该目录覆盖掉该目录已存在的adb.exe文件
◆删掉该目录的nox_adb.exe文件,再复制一份adb.exe并重命名为nox_adb.exe
◆启动模拟器
◆再该目录打开控制台,执行nox_adb.exe connect 127.0.0.1:62001,然后执行adb devices,看到如下信息就表示成功了
◆在模拟器里安装测试apk
文件,这里以一个计算器为例,直接将apk
文件拖到模拟器里即可
◆继续在刚刚的控制台窗口里输入aapt dump badging + 测试APK的路径查看APP的包名和Activity
注:如果模拟器重启了,需要重新执行nox_adb.exe connect 127.0.0.1:62001
三、编写测试脚本(实现1+1=2,归零)
# coding=utf-8 from appium import webdriver from selenium.webdriver.common.by import By from time import sleep import unittest # appium服务监听地址 server = 'http://127.0.0.1:4723/wd/hub' # app启动参数 desired_caps = {'platformName': 'Android', # 平台名称 'platformVersion': '7.1.2', # 系统版本号 'deviceName': '127.0.0.1:62001', # 设备名称 'appPackage': 'com.ddnapalon.calculator.gp', # apk的包名 'appActivity': 'com.ddnapalon.calculator.gp.StartActivity' # activity 名称 } class Test_calculator(unittest.TestCase): def setUpClass(self): global driver # 驱动 driver = webdriver.Remote(server, desired_caps) sleep(2) # driver.switch_to.alert.accept() def test_a_agbtn(self): """点击同意按钮""" try: driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/dialog_ok').click() sleep(1) print("同意点击成功") except: print("同意点击失败") def test_b_smegma(self): """取消提示蒙层""" try: driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/guide_3').click() sleep(1) print("取消提示蒙层点击成功") except: print("取消提示蒙层点击失败") def test_c_add(self): """实现1+1=2""" try: driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/btn_one').click() sleep(1) driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/btn_add').click() sleep(1) driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/btn_one').click() sleep(1) driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/btn_equal').click() sleep(1) # 归零 driver.find_element(By.ID, 'com.ddnapalon.calculator.gp:id/btn_c').click() print("") except: print("") if __name__ == '__main__': unittest.main()
效果:(有点..............................................模糊)
四、模拟器配置(补充)
1.打开开发者模式(连续点击多次版本号)
2.打开USB调试(进入设置,点击开发者选项,打开USB调试)
至此配置结束。