阿里云python自测答案_Python脚本测试

1. 设置Desired Capabilities

开始第一步,创建一个文件,名为:desired_capabilities.py。内容如下:

#!/usr/bin/env python

defget_desired_capabilities():

desired_caps={

'platformName':'Android',

'platformVersion':'7.0',

'deviceName':'V889F',

'appPackage':'com.alibaba.mts.mtsdemoapp',

'appWaitPackage':'com.alibaba.mts.mtsdemoapp',

'app':'D:/home/mdp/result/GroovyTest/case1/task.apk',

'newCommandTimeout':30,

'automationName':'Appium'

}

returndesired_caps

defget_uri():

return"http://localhost:50000/wd/hub"

里面包含两个函数:get_desired_capabilities()和get_uri()。

a. get_uri()

返回Appium Server的地址,比如这里我们在本地启动的Appium Server,并且设置默认监听端口为50000,得到的地址是http://localhost:50000/wd/hub

b. get_desired_capabilities()

获取本次会话的参数。这里主要设置了8个参数。用户可以根据自己的需求进行调整。

platformName,我们测试的目标机器。

platformVersion,测试目标设备的系统版本。

deviceName,测试机器的名称(设备名称即可)。

appPackage,被测应用的包名(只有Android测试才用)。

appWaitPackage,测试时会等待(只有Android测试才用)。

app,被测应用文件的所在位置

newCommandTimeout,两条指令的最长时间间隔。如果超过这个间隔,Appium Server将会终止本次会话。

automationName,本次会话所使用的自动化引擎。Android 4.2以下系统请使用Selendroid;IOS、Android 4.2以上(含)请使用Appium。

2. 编写测试用例

MQC平台会直接执行用户上传的main.py,所以要创建这个入口脚本:main.py。我们以一个登录的脚本main.py作为例子进行说明,代码如下:

# -*- coding: utf-8 -*-

fromappiumimportwebdriver

# 引入刚刚创建的同目录下的desired_capabilities.py

importdesired_capabilities

# 我们使用python的unittest作为单元测试工具

fromunittestimportTestCase

# 我们使用python的unittest作为单元测试工具

importunittest

# 使用time.sleep(xx)函数进行等待

importtime

classMqcTest(TestCase):

globalautomationName

defsetUp(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)

deftest_searchbox(self):

# 找到包含”Tab4”字符串的控件。

ifself.automationName=='Appium':

tab4=self.driver.find_element_by_name("Tab4")

else:

tab4=self.driver.find_element_by_link_text("Tab4")

# 点击.

tab4.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("admin")

# 隐藏出现的软键盘

self.driver.hide_keyboard()

# 找到包含“登录”的按钮并点击

ifself.automationName=='Appium':

self.driver.find_element_by_name("登陆").click()

else:

self.driver.find_element_by_link_text("登陆").click()

# 等待3秒钟,登录需要与服务器通讯。

time.sleep(3)

deftearDown(self):

# 测试结束,退出会话。

self.driver.quit()

if__name__=='__main__':

unittest.main()如何编写移动测试脚本:

MQC移动测试平台支持Appium测试框架,相关技术文档参考Appium文档

3. 启动Appium Server

在本地的命令行中执行命令:

appium –p 50000

启动参数释义:

“-p”: 指定appium server监听的端口号。

“-a”: 指定appium server的ip地址。

“-selendroid-port”: selendroid模式下,adb forward的端口。

“-U”: 当挂载多个设备时,可以通过此参数指定某个设备的串号,这样Appium server就可以知道是要在这个设备上进行测试。

“--full-reset”: 如果加上此参数,设备每个case完成时都会对设备进行完全的清理。

4. 执行测试用例

在命令行中执行命令:

python main.py

其中main就是我们刚刚创建的测试用例:main.py

5. 提交到MQC云平台

本地测试通过之后,将所有测试文件打包成zip文件(main.py文件需要在根目录下),然后在”Android功能测试”里,提交被测应用和打包后的脚本ZIP包。

更多问题,请到我们的钉钉交流群(群号:11762195 )中反馈。其它技术支持方式,详见:地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值