肖sir__app实战运用

一、打开模拟器

 

二、cmd中打开dos命令

adb  connect   127.0.0.1:62001 

 

 

三、安装测试包

adb  install   D:\app\baiduyuedu_3760.apk

E:\dcs\two\app\mojibase.apk

 

 四、打开appium

 

 

 

 

五、(  定位元素没有xpath的就删除原有uiautomatorviewer.bat,替换成新的)

开始定位,定位插件

 

 

 

 

 六、

 

 

 

 

七、更换插件(原有插件)

 

 

 

(1)更换sdk下tools

路径:D:\app\adt-bundle-windows-x86_64-20140702\sdk\tools

 

 (2)将jar放在sdk\tools\lib 下

路径:D:\app\adt-bundle-windows-x86_64-20140702\sdk\tools\lib

 

 (3)将jar放在

案例:sdk\platforms\android-20

路径:D:\app\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20

 

 然后启动

 

 

 

 

 =====================================

案例1:

from   appium  import  webdriver
from time import *
cs={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'OPPO R17', #设备名称
'platformVersion':'android-5.1W', #平台版本
'appPackage':'com.moji.mjweather', #包名
'appActivity':'com.moji.mjweather.LauncherActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #是将键盘隐藏起来
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(10)
# dx.find_element_by_id("com.moji.mjweather:id/jc").click() #同意进入
dx.find_element_by_id("com.moji.mjweather:id/azz").send_keys("北京市")

=====================================================================
查看参数数据:
(1)查看设备和版本
'platformName':'Android',      #平台系统:Android or Ios
'deviceName':'SM­G9350', #设备名称
'platformVersion':'android­4.4W', #平台版本

 (2)查看包名和活动路径名(命令:aapt d badging E:\dcs\two\app\mojibase.apk)

 'appPackage':'com.baidu.yuedu',     #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity 活动路径名

 

 

(3)
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub")

 





===================================================================

from appium import webdriver
from time import sleep
desired_caps={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'SM­G9350', #设备名称
'platformVersion':'android­4.4W', #平台版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #是将键盘隐藏起来

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

 (一)

  'platformName':'Android',      #平台系统:Android or Ios
'deviceName':'SM­G9350', #设备名称
'platformVersion':'android­4.4W', #平台版本

 

 修改手机类型

 

aapt  d  badging  D:\app\baiduyuedu_3760.apk

包名:

 

 

 

====================================================

结合项目编写5条自动化用例

案例1

mport  unittest  #导入unittest 框架,python自带的框架
from   appium  import  webdriver #导入appium模块
from   time  import  * #导入时间
from  HTMLTestRunner3_New import HTMLTestRunner
class  appceshi(unittest.TestCase): #创建一个类,继承unittest.case的类

    def  setUp(self) -> None:
        cs={
            'platformName':'Android',      #平台系统:Android or Ios
            'deviceName':'OPPO R17',     #设备名称
            'platformVersion':'android-7.1W',    #平台版本
            'appPackage':'com.baidu.yuedu',     #包名
            'appActivity':'com.baidu.yuedu.splash.SplashActivity',   #活动activity
            'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
            'resetKeyboard':True} #是将键盘隐藏起来
        self.dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
        sleep(15)

    def tearDown(self) -> None:
        self.dx.quit()

    def  test1_jrts(self):#进入图书界面
        self.dx.find_element_by_xpath("//android.widget.TextView[@text='图书']").click()
        sleep(5)

    def test2_jryh(self):#进入用户界面
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        sleep(3)

    def test3_wdsc(self):#我的收藏界面
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        sleep(3)
        self.dx.find_element_by_id("com.baidu.yuedu:id/account_my_book_fav_title").click()
        sleep(3)

    def test4_wdzdxf(self):#我的自动续费
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        sleep(3)
        self.dx.find_element_by_id("com.baidu.yuedu:id/auto_buy_text").click()
        sleep(3)

    def test5_wdyl(self):#我的阅历
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        sleep(3)
        self.dx.find_element_by_id("com.baidu.yuedu:id/text_my_yueli").click()
        sleep(3)



if __name__ == '__main__':
    # unittest.main() #调用所有的用例

    lj=r"D:\pyCharm\zdhcs" #相对路径
    d=unittest.TestLoader().discover(start_dir=lj,pattern="appceshi.py")
    bglj=r"D:\pyCharm\zdhcs" #相对路径
    new=strftime("%y-%m-%d %H-%M-%S")
    file=lj+"/"+str(new)+"_uizdh.html"
    f=open(file,"bw")
    b=HTMLTestRunner(
        stream=f,description="自动化执行情况",title="ui自动化测试报告",
        tester="dcs"
    )
    b.run(d)

案例2:

import unittest
from   appium  import  webdriver #导入appium模块
from   time  import  * #导入时间


class App_case(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        pass
    @classmethod
    def tearDownClass(cls) -> None:
        pass
    def setUp(self) -> None:
        # 连接参数  cs
        cs = {
            'platformName': 'Android',  # 平台系统:Android or Ios
            'deviceName': 'OPPO R17',  # 设备名称
            'platformVersion': 'android-5.1w',  # 平台版本
            'appPackage': 'com.baidu.yuedu',  # 包名
            'appActivity': 'com.baidu.yuedu.splash.SplashActivity',  # 活动activity
            'unicodeKeyboard': True,  # 使用unicode编码方式发送字符串 }
            'resetKeyboard': True}  # 是将键盘隐藏起来
        self.dx = webdriver.Remote("http://127.0.0.1:4723/wd/hub", cs)
        sleep(10)
    def tearDown(self) -> None:
        sleep(4)
        self.dx.quit()  # 关闭网页
    def test1_ts(self):#进入图书界面
        self.dx.find_element_by_id("com.baidu.yuedu:id/righttitle").click()#点击图书
        sleep(5)
    def test2_gwc(self):#进入购物车界面并退出
        self.test1_ts()
        self.dx.find_element_by_id("com.baidu.yuedu:id/ball").click()#点击购物车
        sleep(5)
        self.dx.find_element_by_id("com.baidu.yuedu:id/backbutton").click()#点击退出
        sleep(5)
    def test3_ss(self):#搜索图书内容
        self.dx.find_element_by_id("com.baidu.yuedu:id/search_account").click()#点击搜索标志
        sleep(5)
        self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("大哥")#输入内容
        sleep(5)
        self.dx.find_element_by_id("com.baidu.yuedu:id/sug_item_name").click()#点击作者名称
        sleep(5)
        self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_search").click()#点击搜索
        sleep(5)
        self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_back").click()#点击退出
        sleep(5)

    def test4_sz(self): #进入设置界面
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_account").click()#点击我的按钮
        sleep(5)
        self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_setting").click()#点击设置
        sleep(5)

    def test5_wifi(self):  # 设置wifi
        self.test4_sz()
        self.dx.find_element_by_id("com.baidu.yuedu:id/rl_sync_wifi").click()#点击wifi
        sleep(5)


if __name__ == '__main__':
    unittest.main()

案例3:

from   appium  import  webdriver #导入appium模块
from   time  import  * #导入时间
#连接参数  cs
cs={
'platformName':'Android',      #平台系统:Android or Ios
'deviceName':'OPPO R17',     #设备名称
'platformVersion':'android-5.1W',    #平台版本
'appPackage':'com.taobao.taobao',     #包名
'appActivity':'com.taobao.tao.welcome.Welcome',   #活动activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #将键盘隐藏起来
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(3)
dx.find_element_by_id("com.taobao.taobao:id/uik_mdButtonDefaultPositive").click() #点击同意
sleep(4)

#充话费
dx.find_element_by_xpath("//android.widget.FrameLayout[@content-desc='充值']").click() #充值中心
sleep(3)
dx.find_element_by_xpath("//android.view.View[@text='话费流量']").click()
sleep(3)
dx.find_element_by_class_name("android.widget.EditText").send_keys("12345678901")
sleep(3)


#跳转登录
# dx.find_element_by_xpath("//android.widget.FrameLayout[@content-desc='购物车']").click()
# sleep(3) #购物车
# dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_account_et").send_keys("admin") #账号
# sleep(4)
# dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_password_et").send_keys("12345") #密码
# sleep(3)
# dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_login_btn").click() #登录
# sleep(3)

案例4:

from   appium  import  webdriver #导入appium模块
from   time  import  * #导入时间
from unittestreport import  TestRunner
import unittest
#连接参数  cs
class   Abcd(unittest.TestCase):
    def setUp(self) -> None:
        cs={
        'platformName':'Android',      #平台系统:Android or Ios
         'deviceName':'OPPO R17',     #设备名称
        'platformVersion':'android-5.1W',    #平台版本
        'appPackage':'com.baidu.yuedu',     #包名
        'appActivity':'com.baidu.yuedu.splash.SplashActivity',   #活动activity
        'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
         'resetKeyboard':True} #是将键盘隐藏起来
        self.dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
        sleep(12)
    def tearDown(self) -> None:
            sleep(4)
            self.dx.quit()
    def test1_tl(self):#进入书架
        self.dx.find_element_by_xpath("//android.widget.TextView[@text='小说']").click()
    def test2_ss(self):#搜索狼图腾书本
        self.dx.find_element_by_id("com.baidu.yuedu:id/search_account").click()
        sleep(3)
        self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("狼图腾")
    def test3_qlhc(self):#清理缓存
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_setting").click()
        self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_clean_cache").click()
    def test4_djqd(self):#点击签到
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        self.dx.find_element_by_xpath("//android.widget.TextView[@text='签到']").click()
    def test5_wdgm(self):#我的购买
        self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
        self.dx.find_element_by_xpath("//android.widget.TextView[@text='我的购买']").click()
        sleep(2)
        self.dx.find_element_by_id("com.baidu.yuedu:id/positive").click()
if __name__ == '__main__':
     unittest.main()

posted @ 2024-04-16 11:02  xiaolehua  阅读(138)  评论(0编辑  收藏  举报