自动化测试框架Appium集成及应用

Appium概述

这是一款基于selemium的移动端测试框架,支持原生,混合,移动web测试等,同时可以多种语言开发,如Python, Java, C#等,拥有可视化平台,操作便捷

Appium Mac安装集成

1.安装brew

在终端命令行输入如下,安装完成后,brew -v 进行版本查看是否成功

curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1

2.安装node.js

在终端命令行输入如下,安装完成后,node -v 进行版本查看是否成功

brew install node

3.安装AndroidStudio,JDK,Xcode,PyCharm

不做详细说明,官网下载安装即可

4.安装Appium可视化服务端
下载链接

5.配置环境变量

查看Java路径

sudo chmod -R 777 /etc/profile
/usr/libexec/java_home -V

在appium服务端设置
自动化测试框架Appium集成及应用_第1张图片
6.安装Appium-doctor

npm config set -g registry https://registry.npm.taobao.org
npm install -g appium-doctor
brew install carthage
appium-doctor

查看安装是否齐全,黄色x可以忽略,不影响使用

Appium Desk使用

1.启动Appium后点击start Server,开启服务,可以看到服务地址为127.0.0.1:4723
自动化测试框架Appium集成及应用_第2张图片
2.点击搜索按钮进行服务测试配置

该功能只是用于查看配置是否正确,能否启动手机测试

此时手机先安装测试apk,并获取apk包名和启动第一页,可以直接联系开发索要

Desird Capablilities是配置过滤项

(1)deviceName 手机连接端口号,可通过adb devices获得
在这里插入图片描述
(2)platformVersion 手机Android版本号
(3)appPackage,appActivity 测试app包名和启动首页,可直接找开发索要

{
  "deviceName": "W8RDU15713002925",
  "platformVersion": "6.0",
  "platformName": "Android",
  "autoAcceptAlerts": "true",
  "noReset": "true",
  "appPackage": "com.test.aaa",
  "appActivity": "com.test.aaa.ui.main.WelcomeActivity",
  "automationName": "Appium"
}

自动化测试框架Appium集成及应用_第3张图片
配置完成后点击start Session会在手机安装Appium Setting app,然后启动测试的app,如果能正常启动说明配置正确

Python 测试用例编码

打开PyCharm新建一个项目,创建两个python文件,desired_capabilities.py和main.py
自动化测试框架Appium集成及应用_第4张图片
desired_capabilities.py 用于设置启动参数

def get_desired_capabilities():
    desired_caps = {
        'platformName': 'Android',
        'platformVersion': '6.0',
        'deviceName': 'W8RDU15713002925',
        'appPackage': 'com.test.aaa',
        'appActivity': 'com.test.aaa.ui.main.WelcomeActivity',
        'newCommandTimeout': 40,
        'automationName': 'Appium',
        'autoAcceptAlerts':'true',
        'noReset':'true'
    }
    return desired_caps
def get_uri():
    return "http://127.0.0.1:4723/wd/hub"

main.py逻辑代码,实现录入用户名,密码,按钮登录功能

# -*- coding: utf-8 -*-
from appium import webdriver
# 引入刚刚创建的同目录下的desired_capabilities.py
import desired_capabilities
# 我们使用python的unittest作为单元测试工具
from unittest import TestCase
# 我们使用python的unittest作为单元测试工具
import unittest
# 使用time.sleep(xx)函数进行等待
import time
class MqcTest(TestCase):
   global automationName
   def setUp(self):
       # 获取我们设定的capabilities,通知Appium Server创建相应的会话。
       desired_caps = desired_capabilities.get_desired_capabilities()
       # 获取server的地址。
       uri = desired_capabilities.get_uri()
       # 获取使用的测试框架
       self.automationName = desired_caps.get('automationName')
       # 创建会话,得到driver对象,driver对象封装了所有的设备操作。下面会具体讲。
       self.driver = webdriver.Remote(uri, desired_caps)
 
   def test_searchbox(self):
        time.sleep(10)
        el1 = self.driver.find_element_by_id("com.test.aaa:id/iv_person")
        el1.click()
        # 等待2秒钟
        time.sleep(2)
        # 通过控件类名找到用户名和密码输入框。
        editTexts = self.driver.find_elements_by_class_name("android.widget.EditText")
        # 第一个框为用户名输入框,输入用户名;第二个框为密码框,输入密码
        editTexts[0].send_keys("admin")
        editTexts[1].send_keys("888888")
        print(editTexts[1].text)
        # 隐藏出现的软键盘
        self.driver.hide_keyboard()
        # 找到包含“登录”的按钮并点击
        if self.automationName == 'Appium':
            self.driver.find_element_by_xpath(".//*[@text='登录']").click()
 
        # 等待3秒钟,登录需要与服务器通讯。
        time.sleep(3)
   def tearDown(self):
        # 测试结束,退出会话。
        self.driver.quit()
if __name__ == '__main__':
    unittest.main()

新建后appium会报红,导入appium包,在编译器Terminal中输入进行安装,成功后可直接运行main.py开启正式测试

pip install Appium-Python-Client

自动化测试框架Appium集成及应用_第5张图片

你可能感兴趣的:(公共信息)