测试大佬浅谈自动化测试框架开发

自动化测试项目中,为了实现更多功能,我们需要引入不同的库、框架。

首先,你需要将常用的这些库、框架都装上。

 pip install requests
  pip install selenium
  pip install appium
  pip install pytest
  pip install pytest-rerunfailures
  pip install allure-pytest
  ...

 然后,在项目中使用他们。

 import pytest
  import yagmail
  from selenium import webdriver
  class MyTest:
      def setup(self):
          self.browser = webdriver.Chrome()
      def test_case(self):
          browser.find_element_by_id("user").send_keys("admin")
          browser.find_element_by_id("pawd").send_keys("admin123")
          # ...
          page.close()
  if __name__ == "__main__":
      pytest.main(["-s", "-v", "./test_case.py",
          "--html", "./test_report.html",
          "--reruns", "3"
      ])
      yagmail.SMTP()
      # ...

设计与封装

  例如上面的自动化项目代码,我们写多了之后,就会发现常用的库就是那么几个,而且用法大同小异,俗称样板代码。

  这个时候你就可以考虑去做一些封装,然后把那些常用的功能封装成了一堆公共方法,在你的项目代码中调用,这样可以更快速的完成开发任务,并且便于应对需求的变化。

import pytest
  from common import mail
  from test_data import TestData
  from page import LoginPage
  class MyTest:
      def test_case(self, browser):
          page = LoginPage(browser)
          page.username.send_keys(TestData.admin)
          page.passowrd.send_keys(TestData.admin_pawd)
          # ...
          page.close()
  if __name__ == "__main__":
      pytest.main(["-s", "-v", "./test_case.py",
          "--html", "./test_report.html",
          "--reruns", "3"
      ])
      mail.SMTP()
      # ...

 

自动化测试框架

  自动化测试框架和你在项目中封装的公共模块有着一些不同。

  它实现的功能更通用:例如,你可以在项目中封装一个登录的公共模块,用于所以用例的登录,但不能在框架里面封装一个登录,因为,你们的项目登录是用账号密码,别人家用的是手机号+验证码,你封装的登录脱离了你的项目就不可用了,显然不应该放到框架里。

  它应该是和项目分离:因为它要给更多的人使用,并且不能轻易被修改,因此,它应该是独立安装的,不应该和项目代码混到一起。如果一个框架被使用者轻易的改来改去。请问,如何升级?使用者想体验新的版本怎么办?

  它应该有一些设计创新:我可不可以把selenium的get()方法改个名字叫open()封装到自己的框架里。当然可以,如果整个框架都是在把别人的API自己换个名字包一层,这和红芯浏览器有什么区别?

 假设我们开发的自动化测试框架叫xtest。

  首先,需要安装xtest。

  pip install xtest

  使用xtest编写测试用例

 

 import xtest
  from xtest import TestData
  from page import LoginPage
  class MyTest:
      def test_case(self, browser):
          page = LoginPage()
          page.username.send_keys(TestData.user)
          page.passowrd.send_keys(TestData.pawd)
          # ...
  if __name__ == "__main__":
      xtest.main(mail=True)

它应该以更简单的方式实现更强大的功能。当然,不同类型的框架,难易程度也是不同的,实现一个web框架的所需要知识更多,实现一个机器学习框架就更难了,自动化测试框架是站在一堆人的肩膀上来实现,难度系数要低很多。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值