App自动化用例脚本

该测试脚本集涵盖了多个自动化测试场景,包括日历推荐文章验证、论坛帖子浏览、滑动操作、任务添加、时间设置、注册流程、院校专业文章点击等。测试用例使用了Appium进行移动应用的UI自动化,并通过TouchAction实现滑动操作,对应用的各个功能进行了详尽的断言检查,确保了应用的正确行为。此外,还实现了随机注册功能,模拟用户注册过程。
摘要由CSDN通过智能技术生成
from appium import webdriver
from time import sleep
import unittest
from selenium.common.exceptions import NoSuchElementException
from App_auto.day03.Tools.mode_kaoyan_test import *
from time import strftime
from appium.webdriver.common.touch_action import TouchAction
import random
from App_auto.day03.Tools.random_register import Ra


class Case01(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)
        self.driver.implicitly_wait(10)

    def tearDown(self) -> None:
        logout(self)
        sleep(4)
        self.driver.quit()

    # # 进入日历中推荐的第一篇文章
    def test_001(self):
        # 登录
        login(self)
        check_btn(self)
        driver = self.driver
        Expect = driver.find_elements_by_id('com.tal.kaoyan:id/date_recommend_info_title')[0].get_attribute('text')
        driver.find_elements_by_id('com.tal.kaoyan:id/date_recommend_info_title')[0].click()
        # 断言
        try:
            Actual = driver.find_element_by_id('com.tal.kaoyan:id/post_item_title_name').get_attribute('text')
            self.assertEqual(Expect, Actual)
        except AssertionError:
            print('不是第一篇文章')
        driver.find_element_by_id('com.tal.kaoyan:id/activity_threaddetail_leftbutton_image').click()

    # 点击论坛中的第一篇帖子
    def test_002(self):
        # 登录
        login(self)
        check_btn(self)
        driver = self.driver
        # 点击“论坛”
        driver.find_element_by_id('com.tal.kaoyan:id/mainactivity_button_forum').click()
        # 点击第一篇帖子
        text = driver.find_elements_by_id('com.tal.kaoyan:id/hot_thread_item_title')[0].get_attribute('text')
        driver.find_elements_by_id('com.tal.kaoyan:id/hot_thread_item_title')[0].click()
        # 断言
        try:
            Expect = text
            Actual = driver.find_element_by_id('com.tal.kaoyan:id/post_item_title_name').get_attribute('text')
            self.assertEqual(Expect, Actual)
            print('进入的是第一篇帖子')
        except AssertionError:
            print('不是进入第一篇帖子')

    # 点击进入日历界面最底下的推广
    def test_003(self):
        driver = self.driver
        # 登录
        login(self)
        check_btn(self)
        # 屏幕滑动
        move = TouchAction(driver).press(x=500, y=1600).move_to(x=0, y=-800).perform()
        move.release()
        # 点击推广
        driver.find_element_by_id('com.tal.kaoyan:id/date_recommend_info_contentimg').click()
        # 断言(判断是否进入推广界面)
        try:
            Exepct = '新人有礼'
            Actual = driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_Title').get_attribute('text')
            self.assertEqual(Exepct, Actual)
            driver.get_screenshot_as_file('../Images/image_成功进入推广界面_{}.png'.format('%Y_%m_%d_%H_%M_%S'))
        except AssertionError:
            print('没有进入推广界面')
        driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_leftbutton_image').click()

    #
    def test_004(self):
        driver = self.driver
        # 点击“添加任务”
        driver.find_element_by_id('com.tal.kaoyan:id/task_no_task').click()
        # 断言(判断是否进入添加任务界面)
        try:
            Expect = '添加任务'
            Actual = driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_Title').text
            self.assertEqual(Expect, Actual)
            driver.get_screenshot_as_file('../Images/image_成功进入添加任务界面_{}.png'.format('%Y_%m_%d_%H_%M_%S'))
        except AssertionError:
            print('没有进入添加任务界面')
        driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_leftbutton_image').click()

    # 添加今天的任务
    def test_005(self):
        # 登录
        login(self)
        check_btn(self)
        driver = self.driver
        # 点击“添加任务”
        driver.find_element_by_id('com.tal.kaoyan:id/task_no_task').click()
        # 设置起始时间
        driver.find_element_by_id('com.tal.kaoyan:id/activity_date_addtask_timestart_layout').click()
        action = TouchAction(driver).press(x=250, y=1650).move_to(x=0, y=-500).perform()
        action.release()
        driver.find_element_by_id('com.tal.kaoyan:id/activity_date_addtask_selectdate_commitbtn').click()
        # 设置终止时间
        driver.find_element_by_id('com.tal.kaoyan:id/activity_date_addtask_timesend_layout').click()
        action2 = TouchAction(driver).press(x=250, y=1650).move_to(x=0, y=-700).perform()
        action2.release()
        driver.find_element_by_id('com.tal.kaoyan:id/activity_date_addtask_selectdate_commitbtn').click()
        # 输入标题
        driver.find_element_by_id('com.tal.kaoyan:id/activity_date_addtask_tasktitle').click()
        driver.find_element_by_id('com.tal.kaoyan:id/activity_date_addtask_tasktitle').send_keys('地狱训练2')
        # 确定添加
        driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_RightButton_textview').click()
        # 断言(判断是否添加成功)
        try:
            Expect = '地狱训练'
            title_str = driver.find_elements_by_id('com.tal.kaoyan:id/home_task_title')
            for i in title_str:
                if i.text == "地狱训练":
                    Actual = i.text
                else:
                    Actual = '123'
            self.assertEqual(Expect, Actual)
            print('添加成功')
        except AssertionError:
            print('添加失败')

    # 登录
    def test_006(self):
        # 登录
        login(self)
        check_btn(self)
        driver = self.driver
        # 断言(是否登录成功)
        try:
            driver.find_element_by_id('com.tal.kaoyan:id/date_fix')
        except NoSuchElementException:
            print('登录失败')
            get_screenshot(self, "登录失败")

    # 在院校专业界面下滑后随机点击一篇文章
    def test_007(self):
        # 登录
        login(self)
        check_btn(self)
        # 点击“院校”
        driver = self.driver
        driver.find_element_by_id('com.tal.kaoyan:id/mainactivity_button_info').click()
        # 切换到专业
        driver.find_element_by_xpath('//*[@class="android.widget.TextView" and @index="1"]').click()
        sleep(2)
        # 下滑
        roll(self, 0, 0.7, 0, 0.2, 1000)
        sleep(1)
        # 随机点击一篇文章
        driver.find_elements_by_id('com.tal.kaoyan:id/news_item_layout_newstitle_textview')[3].click()
        # 断言
        try:
            a = driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_leftbutton_image')
            get_screenshot(self, "文章点击成功")
        except NoSuchElementException:
            print('文章点击失败')
        finally:
            a.click()

    # 在院校专业界面下滑更新随机点击一篇文章
    def test_008(self):
        # 登录
        login(self)
        check_btn(self)
        # 点击“院校”
        driver = self.driver
        driver.find_element_by_id('com.tal.kaoyan:id/mainactivity_button_info').click()
        # 切换到专业
        driver.find_element_by_xpath('//*[@class="android.widget.TextView" and @index="1"]').click()
        sleep(2)
        # 下滑
        roll(self, 0.2, 0.7, 0.2, 0.2, 1000)
        sleep(1)
        roll(self, 0.2, 0.7, 0.2, 0.2, 1000)
        sleep(1)
        # 随机点击一篇文章
        driver.find_elements_by_id('com.tal.kaoyan:id/news_item_layout_newstitle_textview')[3].click()
        # 断言
        try:
            a = driver.find_element_by_id('com.tal.kaoyan:id/myapptitle_leftbutton_image')
            get_screenshot(self, "更新后文章点击成功")
        except NoSuchElementException:
            print('更新后文章点击失败')
        finally:
            a.click()

    # 注册
    def test_009(self):
        driver = self.driver
        # 取消更新
        driver.find_element_by_id('android:id/button2').click()
        # 跳过
        driver.find_element_by_id('com.tal.kaoyan:id/tv_skip').click()
        try:
            # 点击“注册”
            driver.find_element_by_id('com.tal.kaoyan:id/login_register_text').click()
            # 输入用户名
            ra = Ra()
            username = ra.r_username(10)
            driver.find_element_by_id('com.tal.kaoyan:id/activity_register_username_edittext').send_keys(username)
            # 输入密码
            password = ra.r_passwd(10)
            driver.find_element_by_id('com.tal.kaoyan:id/activity_register_password_edittext').send_keys(password)
            # 输入邮箱
            email = ra.r_email(9)
            driver.find_element_by_id('com.tal.kaoyan:id/activity_register_email_edittext').send_keys(email)
            # 立即注册
            driver.find_element_by_id('com.tal.kaoyan:id/activity_register_register_btn').click()
        except NoSuchElementException:
            driver.find_element_by_id('com.tal.kaoyan:id/login_scan_btn').click()
        # 选择院校
        driver.find_element_by_id('com.tal.kaoyan:id/perfectinfomation_edit_school_name').click()
        place = driver.find_elements_by_id('com.tal.kaoyan:id/more_forum_title')
        place[1].click()
        school = driver.find_elements_by_id('com.tal.kaoyan:id/university_search_item_name')
        school[5].click()
        # 选择专业
        driver.find_element_by_id('com.tal.kaoyan:id/activity_perfectinfomation_major').click()
        sub = driver.find_elements_by_id('com.tal.kaoyan:id/major_subject_title')
        sub[7].click()
        sub_list = driver.find_elements_by_id('com.tal.kaoyan:id/major_group_title')
        sub_list[13].click()
        sub_name = driver.find_elements_by_id('com.tal.kaoyan:id/major_search_item_name')
        sub_name[0].click()
        # 进入考研帮
        driver.find_element_by_id('com.tal.kaoyan:id/activity_perfectinfomation_goBtn').click()

    # 关注一名用户
    def test_010(self):
        # 登录
        login(self)
        check_btn(self)
        driver = self.driver
        # 点击“论坛”
        driver.find_element_by_id('com.tal.kaoyan:id/mainactivity_button_forum').click()
        # 点击“我的关注”
        driver.find_element_by_xpath('//*[@class="android.widget.TextView" and @index="1"]').click()
        # 选择一个推荐订阅关注
        driver.find_elements_by_id('com.tal.kaoyan:id/forum_block_view_follow')[3].click()
        Expect = driver.find_elements_by_id('com.tal.kaoyan:id/forum_block_view_name')[3].text
        sleep(2)
        # 断言(判断是否关注成功)
        try:
            str1 = driver.find_elements_by_id('com.tal.kaoyan:id/forum_block_view_name')
            Actual = '123'
            for i in str1:
                if i.text == Expect:
                    Actual = i.text
            self.assertEqual(Expect, Actual)
            get_screenshot(self, "关注推荐订阅成功")
        except AssertionError:
            print("关注失败")
            get_screenshot(self, "关注推荐订阅失败")

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值