第五节 设计一次APP项目自动化

 更多文章,敬请关注微信公众号(robotframework666)

一、准备工作:

1 appium服务器启动,记录好启动的服务器路径与端口

(官网下载安装启动就可以,出现如下图所示,基本就是没问题的)

2 手机准备好,待测手机的安卓版本要查看并记录

platformName=Android

platformVersion=10

这俩参数要拿到,后面是需要用到的

3 准备好待测APP,拿到APP的包名,拿到启用的activity,拿到包名的方式有哪些?

appPackage=com.xxxxx.letalk

appActivity=com.xxxxx.letalk.ui.activity.login.UserGuideActivity

这俩参数也要拿到,后面也要用到的

下面介绍下几种常用的获取包名与MainActivity的方法:

            1 )打开xxx.apk 安装包中的 AndroidManifest.xml的文件,可以找到很多activity

    

            2) 可以通过aapt dump badging  xxx.apk的方式

    直接显示的话用命令:

            aapt dump badging xxx.apk | grep package    

            aapt dump badging xxx.apk | grep launchable-activity

    进入到sdk目录下,build-tools目录下,如图:

        3) db shell dumpsys window | grep mCurrentFocus 也是可以获取的

4 如何定位APP的元素

方式有很多,我们采用最为流行的方式,用sdk目录下,tools目录下的uiautomatorvierer.bat工具

比如我们就拿到了【登录】按钮的各种元素定位信息

另外就是还可以使用appium自带的inspect来进行:

启动的时候参数如下:

{

"remote_url": "http://localhost:4723/wd/hub",  

    #其实这个就是我们启动的本地appium服务地址

"platformVersion": "10",

      #安卓手机的安卓系统版本号

"deviceName": "192.168.25.175:7461", 

    # 手机的名称,一般用adb devices可以获取,我这里是通过STF远程真机控制的手机

"udid": "192.168.25.175:7461",

    # 这个参数与deviceName保持一致即可

"appPackage": "com.xxxx.letalk",

    # 这个就是待测包名

"appActivity": "com.xxxx.letalk.ui.activity.login.UserGuideActivity",

"platformName": "Android"

    # 安卓测试

}

上面几个参数很熟悉吧,就是我们前面步骤获取的参数

启动后可以看到,通过这种方式也是可以获取到定位信息的

二 、开始编码

1、新建项目、测试套件、测试用例

2、启动xxxAPP

3、参数化启动xxxAPP的方法,并封装成一个公共方法

4、编写登录xxxAPP的脚本

5、参数化改造登录xxxAPP的方法,并封装成一个公共方法

(下图封装登录方法,把启动app也一并写入了)

(下图为调用封装好的login方法,传入不同参数来进行测试)

 

login
    [Arguments]    ${count_username}
    AppiumLibrary.Open Application    remote_url=http://localhost:4723/wd/hub    platformName=Android    platformVersion=10    deviceName=192.168.25.175:7565    udid=192.168.25.175:7565    appPackage=com.strong.letalk    appActivity=com.strong.letalk.ui.activity.login.UserGuideActivity
    sleep    3
    Click Element    //android.widget.TextView[@resource-id=\"com.strong.letalk:id/letalk_usercenter_tv_confirm\"]
    Wait Until Page Contains Element    //android.widget.EditText[@resource-id=\"com.strong.letalk:id/letalk_usercenter_et_content\" and @text=\"请输入手机号或乐号\"]    timeout=15    error=not found
    Input Text    ${locator_username}    ${count_username}
    Input Text    //android.widget.EditText[@resource-id=\"com.strong.letalk:id/letalk_usercenter_et_content\" and @text=\"请输入密码\"]    cwx123789
    Click Element    //android.widget.ImageView[@resource-id=\"com.strong.letalk:id/letalk_usercenter_iv_privacy\"]
    Click Element    //android.widget.TextView[@resource-id=\"com.strong.letalk:id/letalk_usercenter_tv_operation\"]

    

这一个案例就可以让大家了解如何用rf来编写appium代码了,目的达到了

下面其实是在测试过程中的一些辅助方式,不做重点介绍。

三、使用录制屏幕的方法

AutoRecorder  mode=suite,test

关于这个库的用法,可以先自行百度哟,不过后期也会做专项讲解的

这种内容并不影响我们自动化的设计

四、使用sikuli库要注意的事情

    (sikuli用于图像识别来进行测试,之后会讲解)

    解决产生垃圾文件的方法,sikuli.py改成new就可以

        启动与关闭的使用

五、APP自动化必不可少的辅助操作方法:如何自定义定位方法?

    相对坐标click方法如何设计

    图像识别的目标匹配+返回坐标+CLICK 方法如何设计

总结下:

        就是让大家了解下,如何用RF于Appium来进行一次安卓移动端的自动化测试

### 回答1: 要使用Python编写一个App自动化测试框架,首先你需要熟悉Python的基础知识,并且要熟悉基本的测试框架,比如Selenium、Appium等。你可以使用一些测试框架,如Pytest或Unittest,来编写测试用例,然后可以使用Python代码来执行这些测试用例,并且自动生成测试报告。 ### 回答2: 使用Python编写一个App测试自动化测试框架可以具有以下几个步骤: 1. 安装所需依赖:首先,我们需要安装Python以及所需的第三方库,如Appium和Pytest。可以使用pip工具在命令行中执行"pip install appium pytest"来安装这些库。 2. 配置测试环境:接下来,我们需要配置Appium测试环境。可以下载Appium Server并安装,然后启动Appium Server。 3. 编写测试脚本:使用Python编写测试脚本。可以使用Appium提供的API来控制App,并使用Pytest来编写测试用例。例如,可以使用Appium API来启动App、点击按钮、输入文本等操作,然后使用Pytest来编写断言语句,验证App的行为是否符合预期。 4. 执行测试脚本:使用命令行工具进入测试脚本所在的目录,并执行测试脚本。可以使用pytest工具来执行测试脚本,例如"pytest test_script.py"。执行过程中,Appium会连接到App并执行定义的操作,然后检查断言是否通过。 5. 生成测试报告:执行完测试脚本后,可以生成测试报告来查看测试结果。可以使用pytest提供的报告插件,如pytest-html,来生成HTML格式的测试报告。执行完测试脚本后,运行"pytest --html=report.html"命令即可生成测试报告。 以上就是使用Python编写一个简单的App测试自动化测试框架的步骤。通过编写测试脚本、执行测试脚本并生成测试报告,可以实现对App自动化测试,并方便查看测试结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落入凡尘的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值