测试自动化oracle,GitHub - glourius/AutomationTest: 自动化测试,支持接口自动化、WEB UI自动化、APP UI自动化、性能测试...

669d5af8639398bfa57728a84b48c0a1.png

一、环境准备

1、脚本运行环境准备

1.1、安装python依赖模块

pip3 install -r requirements.txt

1.1.1、安装xmind-sdk-python

1.2、安装allure

源安装

sudo apt-add-repository ppa:qameta/allure

sudo apt-get update

sudo apt-get install allure

手动安装

解压allure-2.7.0.zip

加入系统环境变量:export PATH=/home/john/allure-2.7.0/bin:$PATH

1.3、安装openjdk8或jdk8

sudo add-apt-repository ppa:openjdk-r/ppa

sudo apt-get update

sudo apt-get install openjdk-8-jdk

1.4、安装maven

完成maven的安装配置

1.5、安装Oracle Instant Client

Linux

安装libaio包

centos:yum install libaio

ubuntu:apt-get install libaio1

配置Oracle Instant Client

下载安装包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

下载安装包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.6、图像识别字库准备

将下载的字库放到common/java/lib/tess4j/tessdata/

Linux

安装依赖

ubuntu:sudo apt install pkg-config aclocal libtool automake libleptonica-dev

centos:yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel

安装leptonica,下载leptonica-1.78.0.tar.gz,下载地址:https://github.com/DanBloomberg/leptonica/releases

安装步骤同tesseract-ocr的安装

安装tesseract-ocr,下载tesseract-4.1.1.tar.gz,下载地址:https://github.com/tesseract-ocr/tesseract/releases

./autogen.sh

./configure

sudo make

sudo make install

sudo ldconfig

Windows

2、selenium 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、安装配置selenium

配置selenium server

下载selenium-server-standalone-3.141.0.jar

以管理员身份启动服务:java -jar selenium-server-standalone-3.141.0.jar -log selenium.log

IE浏览器设置

在Windows Vista、Windows7系统上的IE浏览器在IE7及以上版本中,需要设置四个区域的保护模式为一样,设置开启或者关闭都可以。

工具-->Internet选项-->安全

IE10及以上版本增强保护模式需要关闭。

工具-->Internet选项-->高级

浏览器缩放级别必须设置为100%,以便本地鼠标事件可以设置为正确的坐标。

针对IE11需要设置注册表以便于浏览器驱动与浏览器建立连接

Windows 64位:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE

Windows 32位:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE

如果FEATRUE_BFCACHE项不存在,需要创建一个,然后在里面创建一个DWORD(32位),命名为iexplore.exe,值为0

Windows 64位两个注册表建议都设置

IE8及以上版本设置支持inprivate模式,以便多开IE窗口时cookies能够独享

HKKY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 下建一个名为TabProcGrowth的DWORD(32位),值为0

重启系统

3、appium server运行环境准备

3.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

3.2、安装配置appium server

安装appium desktop server

Android环境准备

安装java(JDK),并配置JAVA_HOME=/usr/lib/jvm/jdk8

安装Android SDK,并配置ANDROID_HOME="/usr/local/adt/sdk"

使用SDK manager安装需要进行自动化的Android API版本

IOS环境准备

由于测试IOS真实设备没办法直接操作web view,需要通过usb,实现通过usb创建连接需要安装ios-webkit-debug-proxy

混合应用环境准备

配置appium的Chromedriver Binary Path的内容为驱动所在路径:/home/john/chromedriver.exe

注:部分webview需要开启debug模式

Windows环境准备

支持Windows10及以上版本

设置Windows处于开发者模式

[可选]下载安装WindowsSDK,在Windows Kits\10\bin\10.0.17763.0\x64内包含有inspect.exe用于定位Windows程序的元素信息

二、修改配置

vim config/app_ui_config.conf 配置app ui自动化的测试信息

vim config/web_ui_config.conf 配置web ui自动化的测试信息

vim config/projectName/projectName.conf 配置测试项目的信息

修改性能测试负载机的系统最大打开文件数,避免并发用户数大于最大打开文件数

三、运行测试

1、API测试

cd AutomationTest/

python3 -u run_api_test.py --help

python3 -u run_api_test.py 运行cases/api/目录所有的用例

python3 -u run_api_test.py -k keyword 运行匹配关键字的用例,会匹配文件名、类名、方法名

python3 -u run_api_test.py -d dir 运行指定目录的用例,默认运行cases/api/目录

python3 -u run_api_test.py -m mark 运行指定标记的用例

2、web ui测试

cd AutomationTest/

python3 -u run_web_ui_test.py --help

python3 -u run_web_ui_test.py 运行cases/web_ui/目录所有的用例

python3 -u run_web_ui_test.py -k keyword 运行匹配关键字的用例,会匹配文件名、类名、方法名

python3 -u run_web_ui_test.py -d dir 运行指定目录的用例,默认运行cases/web_ui/目录

python3 -u run_web_ui_test.py -m mark 运行指定标记的用例

3、app ui测试

cd AutomationTest/

python3 -u run_app_ui_test.py --help

python3 -u run_app_ui_test.py 运行cases/app_ui/目录所有的用例

python3 -u run_app_ui_test.py -tt phone -k keyword 运行匹配关键字的用例,会匹配文件名、类名、方法名

python3 -u run_app_ui_test.py -tt phone -d dir 运行指定目录的用例,默认运行cases/app_ui/目录

python3 -u run_app_ui_test.py -m mark 运行指定标记的用例

4、性能测试

cd AutomationTest/

./start_locust_master.sh

./start_locust_slave.sh

四、生成测试报告

1、API测试

cd AutomationTest/

python3 -u generate_api_test_report.py -p 9080

在使用Ubuntu进行报告生成时,请勿使用sudo权限,否则无法生成,allure不支持

2、web ui测试

cd AutomationTest/

python3 -u generateReport_web_ui_test_report.py -ieport 9081 -chromeport 9082 -firefoxport 9083

在使用Ubuntu进行报告生成时,请勿使用sudo权限,否则无法生成,allure不支持

3、app ui测试

cd AutomationTest/

python3 -u generateReport_app_ui_test_report.py -sp 9084

注:在使用Ubuntu进行报告生成时,请勿使用sudo权限,否则无法生成,allure不支持

五、项目说明

1、API测试

项目

demoProject 例子项目

2、web ui测试

元素的显式等待时间默认为30s

封装的显式等待类型支持:page_objects/web_ui/wait_type.py

封装的定位类型支持:page_objects/web_ui/locator_type.py

默认使用4个worker进行并行测试

文件下载处理暂不支持ie浏览器

无头浏览器暂不支持ie浏览器

项目

demoProject 例子项目

3、app ui测试

元素的显式等待时间默认为30s

封装的显式等待类型支持:page_objects/app_ui/wait_type.py

封装的定位类型支持:page_objects/app_ui/locator_type.py

项目

android

demoProject 例子项目

base 基础请求类

cases 测试用例目录

common 公共模块

common_projects 每个项目的公共模块

config 配置文件

init 初始化

logs 日志目录

output 测试结果输出目录

packages app ui测试的安装包

page_objects 页面映射对象

pojo 存放自定义类对象

test_data 测试所需的测试数据目录

run_api_test.py 运行api测试脚本

run_web_ui_test.py 运行web ui测试脚本

run_app_ui_test.py 运行app ui测试脚本

generate_api_test_report.py 生成api测试报告

generateReport_web_ui_test_report.py 生成web ui测试报告

generateReport_app_ui_test_report.py 生成app ui测试报告

start_locust_master.sh 启动locust主节点

start_locust_slave.sh 启动locust从节点

统一使用python 3.6

编码使用-*- coding:utf8 -*-,且不指定解释器

类/方法的注释均写在class/def下一行,并且用三个双引号形式注释

局部代码注释使用#号

所有中文都直接使用字符串,不转换成Unicode,即不是用【u'中文'】编写

所有的测试模块文件都以test_projectName_moduleName.py命名

所有的测试类都以Test开头,类中方法(用例)都以test_开头

每个测试项目都在cases目录里创建一个目录,且目录都包含有api、scenrarios两个目录

case对应setup/teardown的fixture统一命名成fixture_[test_case_method_name]

每一个模块中测试用例如果有顺序要求【主要针对ui自动化测试】,则自上而下排序,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

web ui测试

统一使用Firefox浏览器进行元素定位

能用id、name、link(不常变化的链接)定位的,不使用css定位,能使用css定位,不使用xpath定位

项目使用并发运行,故编写测试用例时,应该避免模块与模块直接的用例会相互影响测试结果

app ui测试

能用id、name、link(不常变化的链接)定位的,不使用css定位,能使用css定位,不使用xpath定位

如需要上传文件到手机或者从手机下载文件,请确保有手机对应目录的读写权限

视频录制统一对单个单个case进行,保证录制时间不超过3分钟,且录制文件不要过大,否则会引起手机内存无法存储视频

* 确认手机是否能进行视频录制执行命令adb shell screenrecord /sdcard/test.mp4,能正常执行即可

设备屏幕坐标系原点都在最左上角,往右x轴递增,往下y轴递增

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值