• 0
  • 0
分享

  主流自动化框架

  selenium:web端自动化框架,(行业里面最核心的框架)appium:手机app端框架。

  requests:接口测试。

  selenium工具类封装

  selenium提供了很多方法供我们去完成网页元素的操作, 在实际开发中,我们的变量只有元素定位 和对元素的操作,其他的都是重复的,为了减少代码量,我们需要将selenium进行二次封装,这就是工具类。工具类就是我们的工具箱,里面的方法就是我们的工具。

  创建常用工具

  创建一个模块 在项目文件夹下面创建一个模组 new ->Python Package。

1-1.png

  系统会生成一个带init文件的python 框架文件夹。

1-2.png

from time import sleep
class WebKeys:
    def __init__(self):
        self.driver = webdriver.Chrome()
    # 访问url
    def open(self, url):
        self.driver.get(url)
    # 退出
    def quit(self):
        self.driver.quit()
    # 元素定位
    def locator(self, name, value):
        return self.driver.find_element(name, value)
    # 输入框功能
    def input(self, name, value, txt):
        el = self.locator(name, value)
        el.clear()
        el.send_keys(txt)`

  pytest编写测试用例并进行测试

  导入pytest框架

  pytest框架集成了众多方法方便我们对测试用例进行测试,高效,易用,可以节省大量工作 pytest的测试用例必须以test命名 文件如下:

import pytest
from time import *
from data_driver import yaml_driver
@pytest.mark.parametrize('data', yaml_driver.load_yaml('../data/baidu.yaml'))
def test_login(data):
    wk = WebKeys()
    wk.open(data['url'])
    wk.input(data["name"], data["value"], data["txt"])
    sleep(3)
    wk.quit()
if __name__ == '__main__':
    pytest.main()

  数据驱动

  当我们的测试用例很多的时候我们需要写很多次用例,利用数据化驱动,就可以节省很多时间 公司常用的有yaml库。

  利用pip导入yaml 同样的我们要对这个yaml模块进行二次封装,方便我们调用。

def load_yaml(path):
    file = open(path, 'r', encoding='utf-8')
    data = yaml.load(file, Loader=yaml.FullLoader)
    return data

  新建一个文件夹用来专门放测试用例数据。

  新建一个yaml文件然后按正确格式将数据放到里面。

-
  url: http://www.baidu.com
  name: xpath
  value: //*[@id="kw"]
  txt: 狗狗币
-
  url: http://www.baidu.com
  name: xpath
  value: //*[@id="kw"]
  txt: 火币
-
  url: http://www.baidu.com
  name: xpath
  value: //*[@id="kw"]
  txt: 比特币
-
  url: http://www.baidu.com
  name: xpath
  value: //*[@id="kw"]
  txt: 以太坊

  注意这个 - 以及后面url必须在-右下方,否则系统会报文件对齐错误。

  在测试用例代码里面有这样一行代码,这其实就是调用我们封装的yaml类,并返回一个变量列表data变量 @pytest.mark.parametrize('data', yaml_driver.load_yaml('../data/baidu.yaml')) ../表示跳到父目录,然后在通过路径找到yaml文件 在测试用例里面我们只需要给一个方法指定这个data变量,方法就会被执行四次 相当于写了四个用例。

if __name__ == '__main__':
    pytest.main()

  这个pytest.main函数里面有很多参数,方便我们根据自己的需要去调用。

  测试行业发展前景大猜想,究竟是坚守阵地还是灵活变通,点击下方链接填写调查问卷预测一拨吧!看看你的选择有没有影响到这个行业。

  链接:http://vote.51testing.com/



作者:枫之语_    

来源:http://www.51testing.com/html/95/n-4477195.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 预览和发布API文档下面介绍Postman中如何预览和发布API文档。简要概述步骤Collection鼠标移动到某个Collection,点击三个点PublishDocsPublish得到PublicURL别人打开这个PublicURL,即可查看API文档详细解释具体操作预览API文档点击分组右边的大于号>如果只是预览,比如后台开发员自己查看API文档的话,可以选择:Viewinweb等价于点击PublishDocs去发布:ViewinWeb后,有Publish的选项(见后面的截图)ViewinWeb后,会打开预览页面:比如:奶牛云https://documenter.getpostma...
            12 12 3984
            分享
          •   临近年底,很多公司都有年终总结环节,核心目的发现今年的不足,进而总结经验,更好地用以指导明年的工作。当然,即使公司没有要求,对于测试岗位来说,一年一度的总结不可或缺。  假如你是测试负责人,更有必要让团队员工进行汇总总结,通过梳理自己工作上的不足及经验、可以提升工作效率,而且能够有效提升团队成员的责任心。  下面就最近的年终总结相关问题进行了梳理,包括总结的整体思路及总结亮点分别阐述。  总结内容应包括哪些  我们每做一件事情前都应有一个整体的规划,比如做测试前会有测试计划,每日开始工作前,会有每天的工作计划等等,这些好比是考试前的大纲,根据大纲逐条突破,才能取得高分。  做总结也是如此,...
            0 0 1295
            分享
          •   时间如白驹过隙,不知不觉从事测试行业已经近八年了,这些年来经常会听到这样的质疑,你是不是因为技术不好,不会编码,才做的测试?我先给出我的真实经历,我是正规软件工程专业出身,我毕业那年,正是安卓编程大行其道的时候,许多同学都去参加了培训机构,培训完成去做研发,而我自己选择了先行实习,而后毕业后阴差阳错入了测试一行,刚开始的时候,我和许多刚入门的测试同行一样,每天点点点,觉得这工作没有任何技术含量,想着做一段就转开发,但是随着工作时间越来越长,我经常会听到开发这样的抱怨,一次次置自己处在难堪的境。  1.你发现的是个无效缺陷,而我自己却无法辨别其到底是不是编码问题。  2.测试环境我们研发没时...
            14 14 679
            分享
          • 1、什么是POM,为什么要使用它?POM是Page Object Model的简称,它是一种设计思想,而不是框架。大概的意思是,把一个一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,所以自然而然就用了类的思想来组织我们的页面。一般一个页面写一个类文件,这个类文件包含该页面的元素定位和业务操作方法。为了我们测试用例写的简单,清晰,我们很多时候在页面对象会封装很多业务操作方法,测试脚本只需要调用相关方法就可以。2、如果页面元素经常发生需求变化,你是如何做?采用POM思想。好处就是只要改一个页面,我就去修改这个页面对象的元素定位和相关方法,脚本不需要修改。3 在你做自动...
            13 12 1387
            分享
          •       一、前言      作为移动互联网产品『最后一公里的守护者』,我们必须要清楚的知道自己该做什么、怎么做。但从版本迭代速度、需求量级、测试人员不断变动等方面综合来看,我们很多人都没有做好充分的准备。测试方法落后、测试用例覆盖不全、测试效率低下,使得测试将要成为阻碍产品质量进一步提升的另一瓶颈。      因此,沉淀一下自己的工作心得,希望能帮助更多的人完善测试设计,提升自我测试能力。      二、提高测试用例质量  &nbs...
            0 0 1901
            分享
      • 51testing软件测试圈微信