专业电商网站开发,小白建设论坛网站,怎么样通过做网站赚钱吗,网站 美食频道 建设#x1f4e2;专注于分享软件测试干货内容#xff0c;欢迎点赞 #x1f44d; 收藏 ⭐留言 #x1f4dd; 如有错误敬请指正#xff01;#x1f4e2;交流讨论#xff1a;欢迎加入我们一起学习#xff01;#x1f4e2;资源分享#xff1a;耗时200小时精选的「软件测试」资… 专注于分享软件测试干货内容欢迎点赞 收藏 ⭐留言 如有错误敬请指正交流讨论欢迎加入我们一起学习资源分享耗时200小时精选的「软件测试」资料包 最困难的时候也就是我们离成功不远的时候 目录 1.Appiumappium的功能介绍(2).classname定位最后 这篇文章主要介绍了详解基于Android的AppiumPython自动化脚本编写文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
1.Appium
Appium是一个开源测试自动化框架可用于原生混合和移动Web应用程序测试 它使用WebDriver协议驱动iOSAndroid和Windows应用程序。
通过Appium我们可以模拟点击和屏幕的滑动可以获取元素的id和classname还可以根据操作生成相关的脚本代码。 下面开始Appium的配置。 appPackage和APPActivity的获取
任意下载一个app 解压 但是解压出来的xml文件可能是乱码所以我们需要反编译文件。 逆向AndroidManifest.xml 下载AXMLPrinter2.jar文件逆向xml文件命令行输入以下命令 java -jar AXMLPrinter2.jar AndroidManifest.xml -AndroidManifest.txt 获得以下可以查看的TXT文件 寻找带有launcher 的Activity 寻找manifest里面的package Devicename的获取
通过命令行输入 adb devices appium的功能介绍 下面将根据上图序号一一介绍功能
选中界面元素显示元素相关信息 模拟滑动屏幕先点击一下代表触摸起始位置在点击一下代表触摸结束为止
模拟点击屏幕
模拟手机的返回按钮
刷新左边的页面使之与手机同步
记录模拟操作生成相关脚本 根据元素的id或者其他相关信息查找元素 复制当前界面的xml布局
文件退出
2.Python的脚本
元素定位的使用
(1).xpath定位
xpath定位是一种路径定位方式主要是依赖于元素绝对路径或者相关属性来定位但是绝对路径xpath执行效率比较低特别是元素路径比较深的时候一般使用比较少。 通常使用xpath相对路径和属性定位。 by_xpath.py from find_element.capability import driverdriver.find_element_by_xpath(//android.widget.EditText[text请输入用户名]).send_keys(123456)driver.find_element_by_xpath(//*[classandroid.widget.EditText and index3]).send_keys(123456)driver.find_element_by_xpath(//android.widget.Button).click()driver.find_element_by_xpath(//[classandroid.widget.Button]).click()
(2).classname定位
classname定位是根据元素类型来进行定位但是实际情况中很多元素的classname都是相同的 如用户名和密码都是clasName属性值都是“android.widget.EditText” 因此只能定位第一个元素也就是用户名而密码输入框就需要使用其他方式来定位这样其实很鸡肋.一般情况下如果有id就不必使用classname定位。 by_classname.py
from find_element.capability import driver
driver.find_element_by_class_name(android.widget.EditText).send_keys(123565)
driver.find_element_by_class_name(android.widget.EditText).send_keys(456879)
driver.find_element_by_class_name(android.widget.Button).click()(3).id定位
日常生活中身边可能存在相同名字的人但是每个人的身份证号码是唯一的在app界面元素中也可以使用id值来区分不同的元素然后进行定位操作。 Appium中可以使用 find_element_by_id() 方法来进行id定位。
driver.find_element_by_id(android:id/button2).click()
driver.find_element_by_id(com.tal.kaoyan:id/tv_skip).click()3.示例模拟软件的自动注册
首先配置连接属性 desired_caps{}
# 所使用的平台
desired_caps[platformName]Android
# 所使用的手机的名字 可以通过 adb devices 获得
desired_caps[deviceName]127.0.0.1:62001
# ANDROID 的版本
desired_caps[platforVersion]5.1.1
# app 的路径
desired_caps[app]rD:\extend\kaoyanbang.apk
# app的包名
desired_caps[appPackage]com.tal.kaoyan
# app 加载页面
desired_caps[appActivity]com.tal.kaoyan.ui.activity.SplashActivity
# 设置每次是否清除数据
desired_caps[noReset]False
# 是否使用unicode键盘输入在输入中文字符和unicode字符时设置为true
desired_caps[unicodeKeyboard]True
# 是否将键盘重置为初始状态设置了unicodeKeyboard时在测试完成后设置为true将键盘重置
desired_caps[resetKeyboard]True
# appium服务器的连接地址
driverwebdriver.Remote(http://localhost:4723/wd/hub,desired_caps)
driver.implicitly_wait(2)编写操作脚本
import random
import time
driver.find_element_by_id(com.tal.kaoyan:id/login_register_text).click()
usernamezx2019F2LYstr(random.randint(1000,9000))
print(username: %s %username)
driver.find_element_by_id(com.tal.kaoyan:id/activity_register_username_edittext).send_keys(username)
passwordzxw2018str(random.randint(1000,9000))
print(password: %s %password)
driver.find_element_by_id(com.tal.kaoyan:id/activity_register_password_edittext).send_keys(password)
email51zxwstr(random.randint(1000,9000))163.com
print(email: %s %email)
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()
#专业选择
driver.find_element_by_id(com.tal.kaoyan:id/activity_perfectinfomation_major).click()
driver.find_elements_by_id(com.tal.kaoyan:id/major_subject_title)[1].click()
driver.find_elements_by_id(com.tal.kaoyan:id/major_group_title)[2].click()
driver.find_elements_by_id(com.tal.kaoyan:id/major_search_item_name)[1].click()#院校选择
driver.find_element_by_id(com.tal.kaoyan:id/activity_perfectinfomation_school).click()
driver.tap([(182,1557),])
driver.find_element_by_xpath(/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ExpandableListView/android.widget.LinearLayout[1]/android.widget.TextView[1]).click()
driver.find_element_by_xpath(/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ExpandableListView/android.widget.LinearLayout[4]/android.widget.TextView).click()
time.sleep(2)
driver.tap([(983,1354),])
# driver.find_elements_by_id(com.tal.kaoyan:id/more_forum_title)[1].click()
# driver.find_elements_by_id(com.tal.kaoyan:id/university_search_item_name)[1].click()driver.find_element_by_id(com.tal.kaoyan:id/activity_perfectinfomation_goBtn).click()
print(注册成功)
到此这篇关于详解基于Android的AppiumPython自动化脚本编写的文章就介绍到这了。 最后
如果你想学习自动化测试那么下面这套视频应该会帮到你很多 如何逼自己1个月学完自动化测试学完即就业小白也能信手拈来拿走不谢允许白嫖.... 最后我这里给你们分享一下我所积累和整理的一些文档和学习资料有需要直接领取就可以了 以上内容对于软件测试的朋友来说应该是最全面最完整的备战仓库了为了更好地整理每个模块我也参考了很多网上的优质博文和项目力求不漏掉每一个知识点很多朋友靠着这些内容进行复习拿到了BATJ等大厂的offer这个仓库也已经帮助了很多的软件测试的学习者希望也能帮助到你。