Win Pycharm + Appium + 夜神模拟器 实现APP自动化

前言:

之前的文章已经介绍完通过使用 真机 进行APP自动化。此篇文章将介绍使用 夜神模拟器(Nox) 进行APP自动化测试。

 

一、基础配置

1.请移步此篇文章(https://www.cnblogs.com/TSmagic/p/15994256.html

2.进行到此文章(五、下第5步即可)

五、安装Appium

5.点击Start Server

 

二、安装模拟器(重点开始)

1.下载地址

https://www.yeshen.com/

 

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文件拖到模拟器里即可

APP下载地址:https://webcdn.m.qq.com/webapp/homepage/index.html#/appDetail?apkName=com.ddnapalon.calculator.gp&info=00E6511D8EA1490278C95B13C063BCB1

 

继续在刚刚的控制台窗口里输入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调试)

至此配置结束。

 

posted @ 2022-03-16 15:15  莲(LIT)  阅读(715)  评论(0编辑  收藏  举报