Coder Social home page Coder Social logo

appuiautomationtest's Introduction

avatar

一、环境准备

1、脚本运行环境准备

1.1、安装python依赖模块

  • pip install -r requirements.txt

1.2、安装allure

1.3、安装openjdk8

  • sudo add-apt-repository ppa:openjdk-r/ppa
  • sudo apt-get update
  • sudo apt-get install openjdk-8-jdk

1.4、安装Oracle Instant Client

  • linux
    • 安装libaio包
      • centos:yum install libaio
      • ubuntu:apt-get install libaio1
    • 配置Oracle Instant Client
      • 下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

      • 下载安装包instantclient-basic-linux.x64-18.3.0.0.0dbru.zip

      • 解压zip包,并配置/etc/profile

        • unzip instantclient-basic-linux.x64-18.3.0.0.0dbru.zip
        • export LD_LIBRARY_PATH=/home/john/oracle_instant_client/instantclient_18_3:$LD_LIBRARY_PATH
      • 中文编码设置

        import os
        os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
  • Windows
    • 下载地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html
    • 下载安装包instantclient-basic-windows.x64-11.2.0.4.0.zip
    • 解压zip包,并配置环境变量
      • 系统环境变量加入D:\instantclient-basic-windows.x64-11.2.0.4.0\instantclient_11_2
      • 配置中文编码,环境变量创建NLS_LANG=SIMPLIFIED CHINESE_CHINA.UTF8
    • 注意:如果使用64位,python和instantclient都需要使用64位

1.5、图像识别字库准备

2、appium server运行环境准备

2.1、安装jdk1.8,并配置环境变量

  • export JAVA_HOME=/usr/lib/jvm/jdk8
  • export JRE_HOME=${JAVA_HOME}/jre
  • export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  • export PATH=${JAVA_HOME}/bin:$PATH

2.2、安装配置appium server

二、修改配置

  • vim config/config.conf 配置测试信息
  • vim config/platform/platform_init.conf 配置需要初始化的项目
  • vim config/platform/projectName/projectName.conf 配置测试项目的信息

三、运行测试

  • cd APPUIAutomationTest/
  • python runTest.py --help
  • python runTest.py 运行cases目录所有的用例
  • python runTest.py -k keyword 运行匹配关键字的用例,会匹配文件名、类名、方法名
  • python runTest.py -d dir 运行指定目录的用例,默认运行cases目录

四、生成测试报告

  • cd APPUIAutomationTest/
  • python generateReport.py -p 9080
  • 访问地址http://ip:9080
  • 在使用Ubuntu进行报告生成时,请勿使用sudo权限,否则无法生成,allure不支持

五、项目说明

  • 元素的显式等待时间默认为30s
  • 封装的显式等待类型支持:page_objects/wait_type.py
  • 封装的定位类型支持:page_objects/locator_type.py
  • 项目
    • demoProject
      • 例子项目
  • base 基础请求类
  • cases 测试用例目录
  • common 公共模块
  • config 配置文件
  • init 初始化
  • logs 日志目录
  • output 测试结果输出目录
  • packages 程序安装包存放目录
  • page_objects 页面元素映射和页面对象
  • pojo 存放自定义类对象
  • test_data 测试所需的测试数据目录
  • runTest.py 测试运行脚本
  • generateReport.py 报告生成脚本
  • 统一使用python 2.7
  • 编码使用-*- coding:utf8 -*-,且不指定解释器
  • 所有中文都直接使用字符串,不转换成Unicode,即不是用【u'中文'】编写
  • 类/方法的注释均写在class/def下一行,并且用三个双引号形式注释
  • 局部代码注释使用#号
  • 所有的测试模块文件都以test_projectName_moduleName.py命名
  • 所有的测试类都以Test开头,类中方法(用例)都以test_开头
  • case对应setup/teardown的fixture统一命名成fixture_[test_case_method_name]
  • 每一个模块中测试用例如果有顺序要求,则自上而下排序,pytest在单个模块里会自上而下按顺序执行
  • @pytest.mark.skip(reason='该功能已废弃')
  • @pytest.mark.parametrize('key1,key2',[(key1_value1,key2_value2),(key1_value2,key2_value2)])
  • @pytest.mark.usefixture('func_name')
  • 运行pytest时指定的目录内应当有conftest.py,方能在其他模块中使用。@allure.step会影响fixture,故在脚本中不使用@allure.step
  • 能用id、name、link(不常变化的链接)定位的,不使用css定位,能使用css定位,不使用xpath定位
  • 如需要上传文件到手机或者从手机下载文件,请确保有手机对应目录的读写权限
  • 视频录制统一对单个单个case进行,保证录制时间不超过3分钟,且录制文件不要过大,否则会引起手机内存无法存储视频
  • 设备屏幕坐标系原点都在最左上角,往右x轴递增,往下y轴递增

avatar

appuiautomationtest's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.