首页 > 其他分享 >【6】手机自动化框架介绍

【6】手机自动化框架介绍

时间:2023-02-28 19:12:35浏览次数:37  
标签:框架 self driver find note 自动化 手机 element id

 

 

 

 

 

 

 

 

 

 

 

 

 

 unittest_test_addnote.py

#使用unittest框架完成新增笔记的脚本
# # 导入appium类库
from appium.webdriver.webdriver import WebDriver
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import unittest
import warnings
from HTMLTestRunner import HTMLTestRunner
#定义测试类
class TestAddnote(unittest.TestCase):
def setUp(self):
warnings.filterwarnings("ignore")
self.caps = {}
self.caps['automationName'] = 'UiAutomator2'
self.caps['platformName'] = 'Android'
self.caps['platformVersion'] = '6.0'
self.caps['deviceName'] = '192.168.141.101:5555'
self.caps['appPackage'] = 'com.youdao.note'
self.caps['appActivity'] = '.activity2.MainActivity t362'

self.driver = WebDriver('http://127.0.0.1:4723/wd/hub', self.caps)
self.driver.implicitly_wait(10)
#测试新增笔记
def test_case1(self):
el = WebDriverWait(self.driver, 10).until(
lambda x: x.find_element_by_id('com.android.packageinstaller:id/permission_allow_button'))
if el:
# 点击允许按钮
self.driver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button').click()
# 点击新增按钮
self.driver.find_element_by_id('com.youdao.note:id/add_note').click()
# 点击新建笔记
self.driver.find_element_by_id('com.youdao.note:id/add_note_floater_add_note').click()
# 点击取消按钮
self.driver.find_element_by_id('com.youdao.note:id/btn_cancel').click()
# 输入内容
# driver.find_element_by_class_name('android.widget.EditText').send_keys('testcontex1231')
self.driver.find_element_by_xpath(
"//*[@resource-id='com.youdao.note:id/note_content']/android.widget.EditText").send_keys(
'testcontex1231')

# 输入标题
self.driver.find_element_by_id('com.youdao.note:id/note_title').send_keys('testtitle')
# 点击完成按钮
self.driver.find_element_by_class_name('android.support.v7.widget.LinearLayoutCompat').click()
time.sleep(3)
#获取新增成功后的标题内容
rtitle = self.driver.find_element_by_id('com.youdao.note:id/title').text
self.assertEqual(rtitle,'testtitle',"新增笔记测试失败")

def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
#unittest.main()
# 生成测试套
suiteObj = unittest.makeSuite(TestAddnote)
# 创建测试报告文件
file = open("d:\\reportydaddnote.html", "wb")
runner = HTMLTestRunner(stream=file, title='独立脚本测试', description='新增')
runner.run(suiteObj)

 

 

unittest_testsuite_flow.py
#使用测试框架完成业务场景测试(新增、搜索、修改、删除笔记)
# # 导入appium类库
from appium.webdriver.webdriver import WebDriver
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import unittest
import warnings
from HTMLTestRunner import HTMLTestRunner

class TestSuite_ydflow(unittest.TestCase):
@classmethod
def setUpClass(self):
warnings.filterwarnings("ignore")
self.caps = {}
self.caps['automationName'] = 'UiAutomator2'
self.caps['platformName'] = 'Android'
self.caps['platformVersion'] = '6.0'
self.caps['deviceName'] = '192.168.141.101:5555'
self.caps['appPackage'] = 'com.youdao.note'
self.caps['appActivity'] = '.activity2.MainActivity t362'

self.driver = WebDriver('http://127.0.0.1:4723/wd/hub', self.caps)
self.driver.implicitly_wait(10)
#新增功能测试用例
def test_case1(self):
el = WebDriverWait(self.driver, 10).until(
lambda x: x.find_element_by_id('com.android.packageinstaller:id/permission_allow_button'))
if el:
# 点击允许按钮
self.driver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button').click()
# 点击新增按钮
self.driver.find_element_by_id('com.youdao.note:id/add_note').click()
# 点击新建笔记
self.driver.find_element_by_id('com.youdao.note:id/add_note_floater_add_note').click()
# 点击取消按钮
self.driver.find_element_by_id('com.youdao.note:id/btn_cancel').click()
# 输入内容
# driver.find_element_by_class_name('android.widget.EditText').send_keys('testcontex1231')
self.driver.find_element_by_xpath(
"//*[@resource-id='com.youdao.note:id/note_content']/android.widget.EditText").send_keys(
'testcontex1231')

# 输入标题
self.driver.find_element_by_id('com.youdao.note:id/note_title').send_keys('testtitle')
# 点击完成按钮
self.driver.find_element_by_class_name('android.support.v7.widget.LinearLayoutCompat').click()
time.sleep(3)
# 获取新增成功后的标题内容
rtitle = self.driver.find_element_by_id('com.youdao.note:id/title').text
self.assertEqual(rtitle, 'testtitle', "新增笔记测试失败")
self.a
#搜索功能测试用例
def test_case2(self):
# 点击搜索按钮
self.driver.find_element_by_id('com.youdao.note:id/search').click()
# 输入搜索关键字
self.driver.find_element_by_id('com.youdao.note:id/search_edit_view').send_keys("test")
# 点击搜索按钮
self.driver.find_element_by_id('com.youdao.note:id/clear_search_text_btn').click()
self.driver.get_screenshot_as_file('searchnote.png')
time.sleep(3)
@classmethod
def tearDownclass(self):
self.driver.quit()
if __name__ == '__main__':
#实例化测试套件
suiteobj=unittest.TestSuite()
#把测试用例加入测试套中
# suiteobj.addTest('test_case1')
# suiteobj.addTest('test_case2')
suiteobj.addTests('test_case1','test_case2')
runner=unittest.TextTestRunner()
runner.run(suiteobj)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:框架,self,driver,find,note,自动化,手机,element,id
From: https://www.cnblogs.com/zhangyideyl/p/17165607.html

相关文章

  • vue api 模块自动化 加载
    1.创建一个index。js文件//api模块化自动加载constfiles=require.context('./',true,/\Api.js$/)//eslint-disable-next-lineimport/no-mutable-export......
  • 单兵 Web 快速开发框架!
    Jmix是低代码?自从Jmix2018年在中国推广以来(那时叫CUBA平台),很多开发者会在使用之前询问我们,Jmix是不是低代码,扩展性怎么样?低代码应用程序平台(LCAP)是当今最流行的企......
  • 自动化工具:Salesforce Flow可以完全取代Apex吗?
    FlowBuilder作为自动化领域的新秀,近年来得到了突飞猛进的发展。它在功能方面已经远远超过WorkflowRules和ProcessBuilder,随着WorkflowRules和ProcessBuilder的退役,目......
  • 【必看】RuoYiVuek框架-数据源动态新增、配置如此简单!
    应用场景系统用户只能访问系统配置的数据源(可动态新增修改的)RuoYiVue框架源码点我跳转实现方式1.系统提供Yml文件配置+Druid加载数据源+@DataSource注解+D......
  • OpenGL Program渲染框架
    Program.h#pragmaonce#ifndefProgram_h#defineProgram_hclassProgram{public:///ConstructorforarenderingprogramProgram(conststd::......
  • SSM框架-MyBatis学习日记5
    使用limit实现分页在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就......
  • 使用远程IO控制器ZLAN6808-3代替PLC实现电池工业生产线自动化
    动力电池是一种能量储存装置,随着智能制造在传统制造领域的进一步渗透,作为国家战略性新兴产业,明确提出动力电池产业的智能制造发展规划,动力电池的生产已逐步从半自动化、自......
  • python+playwright 学习-17.模拟手机浏览器测试
    前言使用Playwright,您可以在任何浏览器上测试您的应用程序,也可以模拟真实设备,例如手机或平板电脑。设置手机模式只需配置您想要模拟的设备,Playwright就会模拟浏览器行......
  • Django框架课-用户名密码登录
    Django框架课-用户名密码登录创建账号系统建立player表数据库里的表对应的是django里的class进入acapp/game/models里。models文件夹里是存放数据库表的。新建player......
  • 我自己的 Python Web 框架
    原文地址:https://healeycodes.com/my-own-python-web-framework在过去的几个月里,我一直在从头开始建立我自己的软件工具--像编程语言、文本编辑器和CLI工具。在周末,我......