UI自动化-android+app测试基础2+反编译+toast+dialog+popwindow

最近研究一门反编译的绝技,真可谓炉火纯清,哈哈(mac本哈,windows本没研究呢)

开始:打开终端输入cd   ls这步是我们查看所有文件

我的是创建在桌面所以我就输入cd Desktop   ls 这是看我们桌面上的文件

找我的apk我的是:

cd qieziyisheng   ls 

cd com.qiezzi.eggplant ls

这一步是进入到我的文件夹里面

然后我们要找mainefest文件,输入:Java -jar AXMLPrinter2.jar AndroidManifest.xml>AndroidManifes3t.xml      然后就会生成一个AndroidManifes3t.xml 文件,这就是我们要的反编译文件。

/Users/yuliguo/Library/Android/sdk这个文件下找tools然后bin然后uiautomatorviewer文件打开,这个是找空间的

上面到这反编译就结束了

开始app toast测试附上代码

welcome.py

前面的都是固定的注意:版本号,识别码,apk路径,包名的切换

#-*- coding:utf-8 -*-
import unittest
# 导入 appium
from appium import webdriver
# 导入time包
import time

# 导入显式等待的三个包
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


# 定义一个类
class Welcome(unittest.TestCase):


    def setUp(self):
        # 设置打开客户端需要配置的参数
        # 定义一个字典
        self.qiezzi = {}

        # 设置启动需要的参数
        self.qiezzi['platformName'] = 'Android'
        # 设置 版本号
        self.qiezzi['platformVersion'] = '7.0'
        # 设置手机的唯一识别码 通过 adb devices
        self.qiezzi['deviceName'] = 'emulator-5554'
        # 设置需要启动的app的包名 通过反编译apk,包名在mainfest文件里面查找
        self.qiezzi['appPackage'] = 'com.bawei.a1509e'
        # 设置等待的包名 自动化测试工具 monkeyrunner
        self.qiezzi['appWaitPackage'] = 'com.bawei.a1509e'
        # 设置需要启动的activity
        self.qiezzi['appActivity'] = 'com.bawei.a1509e.MainActivity'
        # 设置等待启动的activity
        self.qiezzi['appWaitActivity'] = 'com.bawei.a1509e.MainActivity'
        # 设置每次运行是不是需要重新安装apk, 如果设置为 false表示需要重写安装,如果设置为true,表示不需要重写安装
        self.qiezzi['noReset'] = False
        # 设置app的安装路径
        self.qiezzi['app'] = '/Users/yuliguo/Desktop/app-release.apk'

        # 设置使用 unicode 输入法,同时禁用键盘
        self.qiezzi['unicodekeyboard'] = True
        # 关闭键盘
        self.qiezzi['resetKeyboard'] = True

        # 设置启动 app
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", self.qiezzi)

        # 因为手机端反应比较慢,所以我们需要把休眠时间设置的长点,在这里设置10秒
        time.sleep(10)

        pass
 
def tearDown(self): # 关闭客户端  self.driver.quit() pass


toast的测试用例

def test_register_toast(self):

    # 开始查找控件
    btn_click = self.driver.find_element_by_id("com.bawei.a1509e:id/btn_click")

    btn_click.click()

    # 查找toast
    toast_loc = (By.XPATH, ".//*[contains(@text,'按钮被点击了')]")

    WebDriverWait(self.driver, 30, 0.1).until(EC.presence_of_element_located(toast_loc))

    str = self.driver.find_element_by_xpath(".//*[contains(@text,'按钮被点击了')]").text

    # print str

    # 进行断言
    self.assertEqual(str,u"按钮被点击了")
pass
啰嗦点废话,可能也有用
 
# 公司的业务流程: 产品出原型图: UI效果图 出完这个图以后,一般情况下,公司会开会进行项目评估,看看项目符合不符合需求 # 开发能不能把他开发出来,如果开发开发不出来,进行修改效果图,如果都没问题 # 后台开始写接口 # 测试熟悉项目,同时写测试用例,同时对接口进行测试,测试一下接口通不同,数据对不对,后台写完一个你测试一个 使用postman 或者Jmeter # 安卓 和 ios web前端开始开发起前端 # 等到项目开发完成,我们开始进行功能测试和兼容测试,测试完成以后 # 进行版本迭代的时候,开发开发的时候,我们把脚本写完,前一版本的脚本写完, # 等到第二版本上线的时候,老功能就可以用自动化进行回归,新功能手测试 # 性能测试在在版本文档,上线前夕进行性能测试,模拟大并发,进行性能测试需要搭建测试环境 liuxn + mysql tocat + war

继续:dialog的测试用例

 
def test_click_dialog(self): # 点击dialog按钮  btn_click_dialog = self.driver.find_element_by_id("com.bawei.a1509e:id/btn_click_dialog") # 设置点击时间  btn_click_dialog.click() # 休眠两秒  time.sleep(2) # 查找dialog里面的内容  tv_dialog = self.driver.find_element_by_id("com.bawei.a1509e:id/tv_dialog") # 获取内容  message = tv_dialog.text # 进行断言  self.assertEqual(message,u"我是中国人") pass
popwindow的测试用例
 
def test_click_pop_window(self): # 注意在切换popwindow的时候我们需要在安卓代码里面加入一句代码,获取焦点的代码,如下  # popupView.setFocusable(true);  #点击window控件  btn_click_pop=self.driver.find_element_by_id("com.bawei.a1509e:id/btn_click_pop") #点击  btn_click_pop.click() #休眠  time.sleep(2) #查找控件  tv_popwindow=self.driver.find_element_by_id("com.bawei.a1509e:id/tv_popwindow") #获取内容  message=tv_popwindow.text print message #进行断言  self.assertEqual(message,u"这是一个popwindow")

到这里差不多就这些,运行之前需要启动appium 模拟器等等,看之前的文章。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值