• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

python+appium+pytest自动化测试

武飞扬头像
吉哆哆
帮助1

@[T## #python appium pytest自动化测试详解

学新通
这是搭建好的自动化测试的目录。

Common(基类层)
学新通
1.base_page
学新通

最基础类,供其他文件调用,封装浏览器方法,以方便后面代码的调用。

可以二次封装自带的方法,方便调用,例如:手机上的滑动操作,然后通过元素定位获取到元素的属性值等。
其他地方调用基础类的方法。如果需要修改调用地方的方法,只需要修改基础类里面的方法,提高代码的复用性,可维护性。

2.excel_util
学新通
excel_util是封装了读取excel文件的方法,当测试用例需要编写正向流程,异常流程时,可以把流程需要输入的字段编写到excel文件中,然后循环读取,通过pytest.mark下的方法通过装饰器加载到对应测试case上,实现用例通过不同的输入多次重复执行。

3.read_config
学新通
read_config文件是读取配置文件,配置文件如:测试系统,测试机版本,测试app包名等配置信息。
配置信息单独放在一个文件夹下,方便之后切换测试机或者修改配置。

Config(数据层)
学新通
这个文件夹放系统配置文件,系统配置文件包含如上参数,不同的测试机和不同被测软件,只要统一在这里修改就可。

data(文件层)学新通
文件层是放置测试文件的目录,相当与测试用例的输入值,以及预期结果的值。
学新通
类似于这种格式的文件,然后通过装饰器@在用例上调用,输入参数,然后比对实际结果与预期结果。一行就是一条测试case。

Page_view(页面层)
学新通
页面层selenium与appuim一致。
这个文件夹存放的是自动化测试用到的页面,测试页面。一个页面一个py文件,页面文件中存储的是页面中的静态元素定位和动态页面方法。
静态元素定位,是定位好需要用到的元素,测试中未用到的元素不需要定位,用到什么元素就定位什么元素。把需要用到的元素一个个封装定位好,方便写页面方法的时候调用。
动态页面方法,是指该页面下的操作,比如:登陆页面,输入用户名。密码,点击登陆按钮。这些操作都是在这个页面内完成的,属于该页面独有的页面动作,就是动态页面方法。跟静态元素定位一样的是,测试中需要用到的动作才进行封装编写。测试中不需要用到的动作流程,不需要封装到这个页面文件中。
动态页面方法,是页面下一个个方法,一个动作封装为一个方法,再利用页面中定位好的静态元素,以及继承自base基类中的方法,编写好每一个动态页面方法的流程,方便调用。

runner(执行入口 报告生成)
学新通
run.py为用例执行的入口,在这里同意执行测试用例,以及生成allure报告。
‘–clean–alluredir’为清除之前的allure报告,因为会占用,所以每次跑脚本生成报告的时候加上这个,就会自动把之前的allure报告给清理掉。
‘-s’,’-v’为pytest执行的指令,-v表示打印详细的信息 -s表示输出print打印信息。还有别的执行命令,如:静默执行 -q等。
‘–alluredir’, ‘./result’ 为生成新的result结果集以及生成allure报告。

Testcase(测试用例层)
学新通

存放测试用例,测试用例层调用页面包中对应页面下的动作方法,完成测试步骤,以及不同的测试用例,编写不同的断言,判断该条测试用例是否正确通过。

代码解述
基础框架层每层用法编写完,接下来就可以分每个模块,文件的功能进行分析。
先从run.py执行文件开始。
学新通

执行文件,顾名思义,这个文件相当于自动化测试脚本的开关按钮。编写好脚本,配置好测试地址,配置好测试数据,所有准备工作做完之后,就在这个文件下执行。
If__name__=’main’:
这个是python内的的main方法,意思在这个main方法下的代码,只能在此文件执行时运行。就像base文件下封装的内置方法,可以在别的地方调用使用和运行。
但是加了这个main方法后,文件只能在当前py文件下被执行,别的文件不能调用。这个方法的意义,意思就是相当于这个开关只能在这个文件执行,要是别的文件都可以调用,都可以执行和运行代码,这个文件就没意义。而且这个文件调用一次,那个文件调用一次,非常不利于管理,所以每一个脚本都会有一个执行文件。就可以单步执行。run.py这个文件相当于一个总开关,执行后会自动去对应目录遍历Test的文件以及test命名的用例。
学新通
run.py文件启动方法:
整个文件夹执行参数:‘…/test_case’
单个文件执行,或多个文件执行:‘…/test_case/test_my.py’,‘…/test_case/test_xx.py’

同时也可以在终端下执行用例,终端找到对应的目录。然后执行python run.py就可以启动脚本,用例跑完之后,可以直接执行allure open report 就可以直接打开生成的测试报告。

接下来讲解框架模型,框架是采用POM模型(page object model)
方法层,页面层,用例层
学新通

方法层
新建一个base的包,这个包中新建一个base_page的文件。
定义一个类,二次封装selenium中的方法,让所有页面都继承自这个类,方便调用。不需要全部封装,当需要用到什么方法,就手动在这个类中添加什么方法。
对方法的归类整理。好处是,二次封装的话,可以自定义拼接改造原生方法,更方便自己在自己的框架中使用。而且不同文件调用封装好的方法,如果要一起改掉,直接改源头的方法就可以了,代码的可维护性增强了。
学新通

页面层
新建一个pageobject的包,存放所有的页面文件。
页面层主要是基于自动化测试会用到的界面。一个页面新建一个py文件,一个页面中封装一个页面,这个页面类继承base基类。方便页面类中调用selenium的原生方法。
页面中主要分为两个块:静态元素定位,动态页面方法。
静态元素定位:自动化测试脚本需要用到的元素,封装成一个个对象,方便写方法的时候调用,页面中只要定义需要用到的元素,页面中不需要用到的元素不需要定义写在类中。
动态元素方法:自动化测试脚本中封装好的页面方法,一个动作编写一个方法,利用页面中封装好的元素定位,完成页面动作,跟静态元素定位一样,只需要封装用到的动作,不需要的动作不需要封装方法。编写封装好页面动作,方便之后测试用例层调用。

学新通

用例层
新建一个tasecase的包,存放所有编写的测试用例文件。
用例层是直接调用页面层定义好的方法,运行用例。用例层一般添加测试数据,实现断言。
能在用例层直接点击单条用例的执行按钮,可以调试单条执行用例,也可以直接点击类左边的执行按钮,执行类下的测试用例,用作调试。

编写自动化测试用例
1.先写页面层,把需要测试的页面定位,元素都写完。写的时候调用方法调用基类的方法,如果方法来定义,就去基类二次封装方法。调用。
2.写好页面层之后,就可以开始写用例层了,每一条用例一个方法,都需要test开头,用例里面直接调用页面方法,然后写setup_method,夹具层,把启动app,每条用例都需要用到的代码剥离出来。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggbcag
系列文章
更多 icon
同类精品
更多 icon
继续加载