APP UI自动化练习

阅读: 评论:0

APP UI自动化练习

APP UI自动化练习

一、发现页面

1. 导入类

from appium import webdriver
from Uiframe0test.public.faxian import FaXian
import unittest
import time
import os

2. SetUp

class AndroidTests(unittest.TestCase):def setUp(self):desired_caps = {}  # 定义了一个字典,下面是字典里面的值desired_caps['platformName'] = 'android'  # 平台名称,如果是苹果,则写ios(小写)desired_caps['platformVersion'] = '8.0'  # 手机系统版本号,与测试手机版本一致desired_caps['deviceName'] = 'Android Emulator'  # 设备名,appium不强制检查此参数值,只要有值即可desired_caps['noReset'] = 'True'  # 退出APP时,不重置APP的数据desired_caps['appPackage'] = 'cn.xiaochuankeji.tieba'  # 包名,每个APP就是通过包名来唯一区分desired_caps['appActivity'] = '.ui.base.SplashActivity'  # 首个界面的activitydesired_caps['unicodeKeyboard'] = 'True'  # 给手机安装一个appium的输入法desired_caps['resetKeyboard'] = 'True'  # 重置键盘,使appium输入法为默认输入法#desired_caps['fullReset'] = 'True'   #在初始化时添加这个参数后,每次跑完之后就会把APP卸载掉#desired_caps['app'] = 'D:BaiduNetdiskDownloadzuiyou518.apk'  #每次开始时会先安装APPdesired_caps['automationName'] = 'Uiautomator2'self.driver = webdriver.Remote('localhost:4723/wd/hub', desired_caps)  # 初始化driverprint("starttime:" + time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())))

3. tearDown

   def tearDown(self):filedir = 'D:/test/screenshot/'TIME = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))if not ists(filedir):os.makedirs(os.path.join('D:/', 'test', 'screenshot'))print('endTime:' + TIME)screen_name = filedir + TIME + '.png'_screenshot_as_file(screen_name)self.driver.quit()

4. 用例1-验证发现页面跳转功能

def testfaxian02_01(self):'''验证发现页面跳转功能'''self.driver.implicitly_wait(60)ele1 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='发现']")  # 发现ele1.click()  #点击发现self.driver.implicitly_wait(10)ele2 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='扩列']")self.assertEqual("扩列",)

5. 用例2-进入发现-右友页面

def testfaxian02_02(self):'''进入发现-右友页面'''FaXian(self.driver).faxian()self.driver.implicitly_wait(10)yy = self.driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='cn.xiaochuankeji.tieba:id/ivWeb_cover']")yy.click()  #进入右友页面self.driver.implicitly_wait(10)ele1= self.driver.find_element_by_xpath("//android.widget.TextView[@text='好友']")ele2 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='推荐']")ele3 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='最新']")self.assertEqual("好友", )self.assertEqual("推荐", )self.assertEqual("最新", )

6. 用例3-在右友里面选择帖子并点赞

def testfaxian02_03(self):'''在右友里面选择帖子并点赞'''FaXian(self.driver).faxian()self.driver.implicitly_wait(10)self.driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='cn.xiaochuankeji.tieba:id/ivWeb_cover']").click()  # 进入右友页面self.driver.implicitly_wait(10)aa = self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/like_num")  #记录初始点赞数bb= aa.textself.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/like_icon").click()   #点赞cc = aa.text  #点赞后点赞数self.assertEqual(int(bb)+1,int(cc))  #点赞后数目加1

二、首页

1. 导入类

from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import unittest
import time
import os

2. 用例1-验证首页导航栏文案显示是否正常

def testshouye01_01(self):'''验证首页导航栏文案显示是否正常'''self.driver.implicitly_wait(60)ele1 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='关注']")  # 关注ele2 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='话题']")  # 话题ele3 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='推荐']")  # 推荐ele4 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='视频']")  # 视频ele5 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='图文']")  # 图文ele6 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='生活']")  # 生活self.assertEqual("关注", )self.assertEqual("话题", )self.assertEqual("推荐", )self.assertEqual("视频", )self.assertEqual("图文", )self.assertEqual("生活", )time.sleep(5)self.driver.swipe(900,150,400,150,3000)  #将生活左滑到推荐,生活:[801,116][924,173]  推荐:[342,109][465,180]time.sleep(10)ele7 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='语玩']")  # 语玩ele8 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='游戏']")  # 游戏ele9 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='三坑']")  # 三坑self.assertEqual("语玩", )self.assertEqual("游戏", )self.assertEqual("三坑", )

3. 用例2-验证首页功能模块文案显示是否正常

def testshouye01_02(self):'''验证首页功能模块文案显示是否正常'''self.driver.implicitly_wait(60)ele1 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='最右']")  # 最右ele2 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='发现']")  # 发现ele3 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='消息']")  # 消息ele4 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='我的']")  # 我的self.assertEqual("最右", )self.assertEqual("发现", )self.assertEqual("消息", )self.assertEqual("我的", )

4. 用例3-验证发布帖子功能

  def testshouye01_03(self):'''验证发布帖子功能'''self.driver.implicitly_wait(60)ele1 = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/iconTabItem")[2]  #新建帖子入口ele1.click()  # 点击self.driver.implicitly_wait(10)ele2 = self.driver.find_element_by_xpath("//android.widget.EditText[@text='我的快乐源泉']")  # 输入框text = "我的快乐源泉最右APP" + time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))ele2.send_keys(text)  # 输入内容self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/tvTopicName")[0].click()  #选择推荐的第一个话题self.driver.find_element_by_xpath("//android.widget.TextView[@text='发布']").click()  # 点击发布#断言sendContent = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/expand_content_view")List = []  #定义列表for i in range(0,len(sendContent)):List.append(sendContent[i].text)  #将控件上的文本信息全部追加到列表中List = "".join(List)  #将列表转换成字符串self.assertIn(text,List)  #如果发帖内容在列表中,说明发帖成功

5. 用例4-验证关注功能

def testshouye01_04(self):'''验证关注功能'''time.sleep(10)while True:try:self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/v_epaulet_follow").click()breakexcept:height = _window_size()['height']width = _window_size()['width']self.driver.swipe(width * 0.5, height * 0.8, width * 0.5, height * 0.2, 1000)  # 当关注没有显示时,上滑#断言toast = ("xpath", '//*[contains(@text,"关注成功")]')# 最大等待时间10秒,每隔0.1秒检测1次,直到当前界面存在了关注成功提示ele = WebDriverWait(self.driver, 10, 0.1).until(EC.presence_of_element_located(toast))self.assertEqual("关注成功",)

6. 用例5-验证页面刷新功能

   def testshouye01_05(self):'''验证页面刷新功能'''self.driver.implicitly_wait(60)name = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/simple_member_tv_name")[0]aa =   #第一条帖子的用户名称self.driver.implicitly_wait(10)self.driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='cn.xiaochuankeji.tieba:id/home_refresh_view']").click()  # 刷新当前界面self.driver.implicitly_wait(10)#断言bb = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/simple_member_tv_name")[0]self.assertNotEqual()

7. 用例6-验证帖子屏蔽功能

   def testshouye01_06(self):'''验证帖子屏蔽功能'''self.driver.implicitly_wait(60)ele1 = self.driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='cn.xiaochuankeji.tieba:id/simple_decorator_delete']")ele1.click()  # 屏蔽用户self.driver.find_element_by_xpath("//android.widget.TextView[@text='不喜欢该用户']").click()  # 选择屏蔽原因toast = ("xpath", '//*[contains(@text,"将减少类似内容推荐")]')# 最大等待时间20秒,每隔0.1秒检测1次,直到当前界面存在了关注成功提示ele2 = WebDriverWait(self.driver, 10, 0.1).until(EC.presence_of_element_located(toast))self.assertEqual("将减少类似内容推荐", )

8. 用例7-验证搜索功能

def testshouye01_07(self):'''验证搜索功能'''self.driver.implicitly_wait(60)ele = self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/ic_search_b") .click()  # 点击首页-搜索self.driver.implicitly_wait(10)search = self.driver.find_element_by_class_name("android.widget.EditText")  # 搜索-输入框search.send_keys('圣诞节')time.sleep(5)self.driver.keyevent(84)  # 搜索aa= self.driver.find_element_by_xpath("//android.widget.EditText[@resource-id='cn.xiaochuankeji.tieba:id/container_search_input']")bb = aa.text  #获取搜索框中的内容title = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/title")  #搜索内容title列表List = []for i in range(0,len(title)):List.append(title[i].text)List = "".join(List)self.assertIn("圣诞节",List)

三、消息页面

1. 导入类

from appium import webdriver
from Uiframe0test.public.xiaoxi import XiaoXi
import unittest
import time
import os

2. 用例1-验证消息页面跳转功能

def testxiaoxi03_01(self):'''验证消息页面跳转功能'''self.driver.implicitly_wait(60)ele = self.driver.find_element_by_xpath("//android.widget.TextView[@text='消息']")  # 消息ele.click()self.driver.implicitly_wait(10)ele1 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='提醒']")  # 提醒ele2 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='私信']")  # 私信self.assertEqual("提醒", )self.assertEqual("私信", )

3. 用例2-私信列表底部显示

 def testxiaoxi03_02(self):'''私信列表底部显示'''XiaoXi(self.driver).xiaoxi()self.driver.implicitly_wait(10)self.driver.find_element_by_xpath("//android.widget.TextView[@text='私信']").click()  # 点击私信while True:try:ele = self.driver.find_element_by_xpath("//android.widget.TextView[@text='没有更多啦~']")self.assertEqual("没有更多啦~", )breakexcept:height = _window_size()['height']width = _window_size()['width']self.driver.swipe(width * 0.5, height * 0.8, width * 0.5, height * 0.2, 1000)  # 上滑

4. 用例3-删除一条私信功能

   def testxiaoxi03_03(self):'''删除一条私信功能'''XiaoXi(self.driver).xiaoxi()self.driver.implicitly_wait(10)self.driver.find_element_by_xpath("//android.widget.TextView[@text='私信']").click()  # 点击私信name1 = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/name")aa = name1[0].text  #删除前第一条私信用户名self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/ivBtn_delete_batch").click()  #点击删除按钮self.driver.implicitly_wait(10)self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/ivBtn_select")[0].click()  # 选择第一条私信self.driver.implicitly_wait(10)self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/vBtn_delete").click()  #点击删除self.driver.implicitly_wait(10)self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/ZYDialog_positive_btn").click()  #点击确认self.driver.implicitly_wait(10)name2 = self.driver.find_elements_by_id("cn.xiaochuankeji.tieba:id/name")bb = name2[0].text  #删除后第一条私信用户名self.assertNotEqual(aa,bb)

5. 用例4-消息-提醒页面显示

def testxiaoxi03_04(self):'''消息-提醒页面显示'''XiaoXi(self.driver).xiaoxi()self.driver.find_element_by_xpath("//android.widget.TextView[@text='提醒']").click()self.driver.implicitly_wait(10)ele1 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='小右通知']")ele2 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='收到的@']")ele3 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='新增粉丝']")ele4 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='好友请求']")self.assertEqual("小右通知",)self.assertEqual("收到的@", )self.assertEqual("新增粉丝", )self.assertEqual("好友请求", )

6. 用例5-消息-提醒页面显示

def testxiaoxi03_05(self):'''消息-提醒页面为空时界面显示'''XiaoXi(self.driver).xiaoxi()self.driver.find_element_by_xpath("//android.widget.TextView[@text='提醒']").click()self.driver.implicitly_wait(10)ele = self.driver.find_element_by_xpath("//android.widget.TextView[@text='网络一线牵,主动才有缘~']")self.assertEqual("网络一线牵,主动才有缘~", )

四、public

1.faxian.py

class FaXian(object):def __init__(self, driver):self.driver = driverdef faxian(self):self.driver.implicitly_wait(60)ele1 = self.driver.find_element_by_xpath("//android.widget.TextView[@text='发现']")  # 发现ele1.click()  # 点击发现

2. log_create.py

import time
class createlog(object):def __init__(self, driver):  #封装了一个init方法self.driver = driver  #将driver赋值给self.driverdef log(self):time.sleep(3)self.driver.find_element_by_xpath("//div[@class='container']/ul/a[5]/li").click()  # 点击日志time.sleep(3)self.driver.find_element_by_xpath("//main[@class='el-main']/div/div/button/span").click()  # 写日志time.sleep(3)

3. loginApp.py

import timeclass Mylogin(object):def __init__(self, driver):self.driver = driverdef login(self):self.driver.implicitly_wait(60)self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/me_item").click()time.sleep(2)self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/tv_notLogin_goLogin").click()time.sleep(1)self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/login_mode").click()self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/phone_num_edit").send_keys("15127409611")self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/code_edit").send_keys("a123456")self.driver.find_element_by_id("cn.xiaochuankeji.tieba:id/login").click()time.sleep(5)

4. xiaoxi.py

import timeclass XiaoXi(object):def __init__(self, driver):self.driver = driverdef xiaoxi(self):self.driver.implicitly_wait(60)self.driver.find_element_by_xpath("//android.widget.TextView[@text='消息']").click()  # 消息time.sleep(5)

本文发布于:2024-02-01 20:22:10,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170679012939209.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:APP   UI
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23