前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是如何实现自动化的. 前提:已安装配置好appium+python自动化环境 一.连接手机启动app 1,连接手机 -手机USB连接电脑 -手机打开开发者模式.USB调试功能 2,基础信息配置 基础连接信息如下(以叮咚app为例): 'platformName': 操作平台'deviceName':…
sudo kill -9 $(lsof -i:8889 -t) mitmweb -p 8889 -s addons.py mitmdump -q  -p 8889 -s addons.py http://appium.io/docs/en/writing-running-appium/caps/ adb logcat -v time  | grep `adb shell ps | grep com.tencent.mm.appbrand0 | cut -c10-15`   >/home/andr…
简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自动化测试的App并安装到手机 获取AppPackage和AppActivity 参考:https://juejin.im/post/5c3809a451882524c84ebabe 最终,得到App的信息如下: appPackage:com…
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚本时更清楚的知道该如何入手. 一个优秀的自动化测试框架应该具备的特点包括: 可扩展性:对新增功能模块.对不同的项目等等 易用性:易于查看,熟练或者新手都可以很快的对框架的结构进行掌握,可以很快的上手编写测试脚本等 稳定性.可维护性:不同的人均可对此框架进行补充封装,多人协作可将框架更好的进行完善 管…
目的: 通过添加设备号,则自动给添加的设备分配端口,启动对应的appium服务.注意:为了方便,将共用一个配置文件. 1.公共的配置文件名称:desired_caps.yaml platformVersion: platformName: Android deviceName: oppo appPackage: com.iBer.iBerAppV2 appActivity: com.iBer.iBerAppV2.MainActivity #appPackage: com.android.mms…
1.单设备的执行很简单,平时可多见的是直接在config中进行配置并进行运行即可.如下: # coding=UTF- ''' Created on // @author: SYW ''' from Test.logs.logs import logging #自己封装的log打印方法 from appium import webdriver import unittest from time import sleep class Test_appium(unittest.TestCase): d…
优秀的脚本调试定位问题具备的特点: 1.方便调试. 2.运行报错后容易定位出现的问题. 3.日志的记录清晰 4.日志可被存储,一般测试结果的分析在测试之后会进行,那么日志的存储将会为后期的分析问题带来很大的便利 ...等等 怎么调试自己写的脚本?通过什么方式进行才可确定自己写的脚本健壮性较好? 1.常见的方式,编写边调试,首先确定自己开始写的脚本语句是没有问题的. 2.出现报错时根据报错信息,新增print '***********'等调试语句,通过打印,可快速定位脚本执行到哪一步未正常执行出现…
我自己编写的脚本框架中,所有的脚本执行均放在一个py文件中,此文件作为启动文件执行,包含了运行此文件将执行脚本.分配设备端口.自启appium服务等. 详细的介绍待后期补充.…
脚本的使用,注释非常关键,无论自己的后期查看还是别人使用,都可以通过注释很明确的知道代码所表达的意思,明确的知道如何调用方法等等.每个团队均有不同的商定形式来写脚本,因此没有明确的要求和规范来约束.如下将介绍我们的测试脚本编写规范主要集中的几个方面: 1.方法的命名2.脚本的注释3.方法的解释与调用注意事项 #---接口层:脚本解释命名规范如下 def test(self,element): ''' :method explain: - 此方法的解释 :ndertake method: - 此方…
# coding=utf-8 from appium import webdriver import time import unittest import os import HTMLTestRunner class LoginTestLizi(unittest.TestCase): def setUp(self): desired_caps = {} desired_caps['platformName'] = 'Android' # 设备系统 desired_caps['platformV…