python专项测试——Android App自动化测试框架

1 为什么需要框架?

代码混乱,难阅读; 重复编码,效率低;需求变化,难维护;

一 自动化实例

1 准备测试的app;准备测试环境;实现脚本;

2 测试app:只有登录功能

测试环境:

  • Appium(Android/IOS);
  • Android SDK;
  • Appium-Python-Client;
  • Selenium(Appium-Python-Client继承于Selenium);
  • UIAutomatorViewer
  • Pycharm

3 实现脚本

在Pycharm中编写脚本;

用UIAutomatorViewer进行定位;

借助Appium—Python—Client实现的api;

借助Appium—Python—Client的字典实现属性;

运行脚本之前要启动Appium并进行设置,如果出现“新的session无法建立”的错误,请释放资源并重启Appium。

二 测试框架Unittest

1 主要讲解:Test Fixture; Test Case; Test Suite; Test Runner

2Test Fixture包括准备,执行,清理的过程;对应到脚本上是:setup(), testcase(), teardown()

其他三项已知。

3 脚本

三 数据驱动框架

1 如何使用?准备第三方库——首先安装ddt库,其次在脚本中引入ddt, 然后就OK

具体:

  • 到Python 官网下载ddt库;
  • 在脚本中导入ddt库的命令:from ddt import ddt, data, unpack
  • 在测试类前标注ddt :@ddt
  • class MookTestCase(unittest.TestCase) ,说明本次的测试类是使用数据驱动框架
  • 测试用例主要分为有参数和无参数,数据驱动主要用于带参数的测试用例
  • 对于有一个参数的用例,使用元组存放被测试的数据,并加上data标注:@data(1, -3, 2, 0)
  • def testcase(self, value):
  • 对于有多个参数的用例,使用元组存放被测试的数据,并加上data标注:@data((3,2),(4,3), (5,3))
  • @unpack
  • def testcase(self, value1, value2):

2 脚本中应用

3 应用了ddt框架后,单独运行某条case的语句不再适用,但可以加载运行整个测试类。