Python自动化测试框架到底应该学哪一个?

发表于:2021-3-29 09:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:程序员一凡    来源:CSDN

分享:
  企业中,自动化必定会演变成搭建测试框架,这是为什么呢?
  可能有一些刚刚进入软件测试行业的朋友还不理解什么是测试框架,没关系,首先我们知道一点,为什么自动化会演变成搭建测试框架呢?
  因为自动化肯定是一个团队在做,而不是你一个人在做,所以团队在做自动化会给企业项目带来很大的收益。
  如果大家对测试框架不了解的朋友,其实如果你去面试自动化测试工程师,很多人就会有一个疑问,假设我现在是一个面试官,我问你一个问题:你能不能搭建测试框架?
  如果是你,能不能针对这个问题聊一聊呢?其实这个问题疑问,你会不会自动化,有没有经验,肯定一问便知。大型招聘网站上岗位职责会不会有要求能独立搭建自动化测试框架
  也许你可能会一点Python脚本,会一点selenium,会一点点这个编程,但是总之这个框架的部分,大家可能还很模糊。有些朋友可能说这个搭建测试框架到底是什么玩意儿?
  那我们今天就来好好理解什么是搭建自动化测试测试框架,然后如何从零开始搭建。
  那么在搭建测试框架之前,我们可以了解一些最简单的概念。
  01.主流测试框架原理解析
  什么叫做测试框架?
  首先框架分为几种,框架分为技术框架和自己搭建测试框架。
  第三方技术框架:
  下面这些就是做过自动化的朋友所熟悉的,根据不同的产品模型有很多种:
  web的DOM元素自动捕获识别,windows的窗体识别,基于图像识别airtest
  web自动化主流框架:selenium,robotframework,macaca
  移动端自动化主流框架: appium,macaca,uiautomator2,robotframework
  接口自动化测试框架: request,HttpClient,httprunner,robotframework
  (其实在做自动化测试,框架从来不缺,非常多的框架,一大把,甚至平时会有很多朋友给我后台留言,你会不会这个框架那个框架之类,有一些不是当下企业主流常用的。其实所有的测试框架归根结底,你如果用多了它们之间都是相通的)
  友情提示:如果是小白同学,selenium是什么,或者Python最基本的环境搭建还不会的,建议可以阅读我之前写的其他基础一些的文章,自动化基本的一些知识。也有视频教程免费领取,愿你我相遇,皆有所获!有了一定基础再来阅读这一篇文章,可能对自动化会有一个新的认识。
  我们接着讲,这个自动化测试框架,首先Web端的像这个问题,你在面试过程中肯定会说到,我之前在工作中做自动化我会用到selenium、robotframework或者用macaca等等,是如何用selenium+Python+unittest+一些数据驱动等等,如何来做的。
  然后有移动端的,最主流的我都写在了第一个,比如移动端的就是appium,它可以说是做app自动化的鼻祖,随着技术的更新uiautomator2是Python的一个内置库,然后像robotframework也是通过二次封装也是可以做app自动化的测试框架。
  所以你去应聘自动化测试工程师,面试官问你任何类型的自动化,你都要马上能够想到很多方案,比如说我是用什么框架,如何去做。
  基于以上非常好用,主流第三方开源的测试框架,根据这些代码分层、模块思想去搭建一个测试框架。
  自主搭建测试框架:
  ·框架帮助我们编写更加简单而且好维护的自动化用例;
  ·让我们把主要精力放在测试用例的设计上;
  ·需要把—些额外的东西抽象出来,封装起来;
  ·一套好的测试框架,可以让团队其他同事不需要有很强的代码基础,就能编写自动化测试用例,维护测试用例,执行自动化用例,利于团队协作,起到提质保效的作用。
  02.搭建测试框架前的准备与思路
  我们做事情,做自动化也不要盲目的去做:
  1.请确保你已经掌握了一门编程语言的基本的语法。
  2.开源测试框架的基本用法。
  3.如果你要搭建Ul框架,请确保你已经掌握了Selenium的基本用法(常用的点击,输入,等待,滑动,获取属性,鼠标键盘,用例断言)。
  4.如果你要搭建接口框架,请确保你已经掌握了接口测试(session)和request基本用法(get,headers,session,断言)。
  在搭建之前,我们来看一个最简单的脚本,我们先从UI自动化开始。
  比如公司会有各种系统,后台管理系统,前端一些用户交互的系统,像这一类管理系统大多数以Web端的为主,这一类后台系统大部分功能你就可以用自动化来实现,用UI自动化来保证后台管理系统它的最基本的功能和它主要的核心业务、大面积的回归测试、用自动化脚本。
  我这里就写了一个最简单的脚本:
  运行之后它就会帮我们自动去登录,打开浏览器然后输入文本,输入用户名密码,点击登录。
  这个是最简单的send_keys,click。
  其实如果我们真正的在企业中做自动化,就需要来考虑很多问题了,前面这个是脚本,我们现在要来搭建自动化测试框架,所以脚本形成框架之前我们是不是要考虑很多问题。
  比如说:
  1.脚本的运行环境(linux,windows)。
  ⒉.配置文件(环境:测试,预发布,正式。数据库数据:用户名密码)。
  不是说所有人都有这个权限,拿到正式环境,拿到预发布环境,数据库的账户和密码的,所以这些东西需要放到配置文件里面去。
  3.初始化浏览器(类型:谷歌/火狐模式:本地/linux/docker/无头模式/浏览器常用操作)。
  4.Po模式
  5.log日志
  6.报告系统
  7.数据驱动
  8.关键字驱动
  还有十几条……
  所以最基本的,我们先考虑好这些问题,那么我们一步一步来。
  比如说我在配置文件里面,随便改一个配置,它就会到另外一个环境运行了:
  比如说像这种域名,肯定很多地方用得到,如果你需要写死在脚本里面是不大现实的。
  数据库的用户名和密码你不能写在脚本里面,都是非常敏感性的东西,很多都可以想到配置文件里面。
  大家用很多的开源框架,应该也感受到好用的东西它肯定会有一个配置文件,开发也是一样,比如说上线了需要跑一个什么脚本,是不是也经常去改配置文件,运维也是一样的,如果要去发布东西了,他也会经常去改配置文件,而不是一些真正的代码。
  那我们测试也是一样的啊,你要来运行这个自动化测试,自动化很多东西需要用配置文件来操控它,这是一个思想。
  比如说我们的pytest,那这也是一个框架,好用!它也有一个配置文件。
  这个脚本自身的一些因素我们就不说了,比如说脚本需要优化的地方。
  脚本优化:没有等待时间,定位元素稳定,unittest/pytest组织用例,复用性,断言。
  所以我们简单的脚本,根本不算是自动化,这可以理解成你在功能测试点点点一样的。这无非是用脚本代替我们去做一些操作,但是像这样的脚本,真正的做自动化肯定不是这样的脚本,你如果来写这样的脚本,纯属你的个人爱好,或者是以个人兴趣在玩。你真正的去面试自动化,面试官也不会问你输入文本用什么方法,怎么去定位的,怎么去点击的,面试自动化测试工程师这些不在范围之类。面试官会默认你会了,这些是最基本的东西。
  接下来,我们来做封装。
  第一步我们就要考虑的点,刚刚所说的配置文件,我们就要管理好到底做什么东西。
  我们在目录下面新建一个文件夹,比如说config,里面可以包含很多很多东西。(不仅可以放base.Yaml,可以放用例,用例之间的关联)比如说我们刚刚很多的一个配置,这里我建议大家用一个Yaml文件。不管是可读性还是好用性都是非常好的。
  比如base,一些最基础的数据,base.Yaml。
  根据前面说到要考虑的东西:
  如果没有理解可以公众号程序员一凡主页点击领取资料,免费获取本章视频教程。
  看懂了?之前有没有思考过这个问题?你可能写脚本最多用一个unittest运行前面的一个脚本,其实真正一个团队在做自动化测试,用这个方法很难管理的,不是你一个人在做,如果想做自动化测试团队的核心人物,这些问题都是需要去思考的。
  配置文件为什么会存在,存在的意义,了解了之后,我们再去读取配置文件。
  #在Python里面非常简单,
  import yaml 导入
  #然后我们就可以来写一个类
  class config:
  #比如这个类里面是专门读取配置文件,我们也命名为config
  def init( self):
  #我们写一个初始化方法
  读取yaml文件在Python里面,会用到一个上下文管理器
  #with 就说说它会自动化去打开而且关闭


  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号