7个超好用的测试框架(总有一款适合你2)

发表于:2021-10-22 09:50

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

 作者:程序员臻叔    来源:知乎

分享:
  四、Cucumber(API自动化、UI自动化)
  【官网】
  https://cucumber.io/
  【简介】
  自动化测试用例越写越多,也越来越难维护。
  开发看不懂测试写的代码,测试也看不懂测试写的代码,那是因为代码不讲人话。
  如何才能做到面向“注释”编程?BDD给出了答案。
  BDD:Behavior-Driven Development ,也就是行为驱动开发。
  BDD使用的叫做Gherkin的语言,它的理念是使用自然语言来描述功能,而且强调的是使用例子来说明需求功能。是不是跟敏捷开发中的用户故事(User Story)很像?嗯,因为它们都是一个妈生的。
  使用这种方法可以让非技术人员、客户可以参与到需求的确认与验收当中。
  以下是用 Cucumber 写出的 BDD 风格的测试用例 Demo :
  // Given 前置(预置)条件。(一般用于定义一个变量等)
  @Given("today is Sunday")  
  public void today_is_Sunday() {
      // Write code here that turns the phrase above into concrete actions
      throw new io.cucumber.java.PendingException();
  }
  // When 当xxx的时候(相当于 if )
  @When("I ask whether it's Friday yet") 
  public void i_ask_whether_it_s_Friday_yet() {
      // Write code here that turns the phrase above into concrete actions
      throw new io.cucumber.java.PendingException();
  }
  // Then 那么将要做xxx操作。
  @Then("I should be told {string}")
  public void i_should_be_told(String string) {
      // Write code here that turns the phrase above into concrete actions
      throw new io.cucumber.java.PendingException();
  }
  就像讲故事一样,来梳理代码逻辑。
  【使用场景】
  自动化测试用例管理和用例执行(API自动化、UI自动化)。
  五、pytest(白盒测试、API自动化、UI自动化)
  【官网】
  https://docs.pytest.org/en/6.2.x/
  【简介】
  pytest 是 python 语言中一款强大的单元测试框架(也是最好用的单元测试框架,不服来战),用来管理和组织测试用例,可应用在单元测试、自动化测试工作中。
  当然,如果你是个 pythoner 的话,你可能也多多少少听说过 unittest。
  其实论用途而言,pytest 和 unittest 用途不多,都是优秀的单元测试框架。
  但是 pytest 在 unittest 的基础上,丰富了不少功能,而且比 unittest 更简洁高效,pytest + allure 还可以输出更加美观的测试报告,pytest在数据驱动上的支持,也是略优于unittest。
  所以还是可以优先选择 pytest。
  【使用场景】
  · 常用于单元测试(白盒测试)
  · 自动化测试的用例管理和用例执行框架(API自动化、UI自动化)。
  六、Appium(移动端的UI自动化测试)
  【官网】
  http://appium.io/
  【简介】
  在移动端的 UI自动化 测试领域,带头大哥当属 Appium。
  Appium 是基于 Nodejs 的一款 UI自动化 测试框架。
  支持多平台(Android、iOS等)
  支持多语言(python、java、ruby、js、c#等)
  Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。
  之前曾看过一则新闻,Appium 已经进军 AI 测试(基于AI查找控件)的领域了,不愧是龙头大哥。
  【使用场景】
  · 移动端的UI自动化测试
  一般会结合单元测试框架去开发UI自动化测试框架。
  Java:TestNG + Appium + Jenkins
  Python:Pytest + Appium + Allure + Jenkins
  七、ATX(移动端的UI自动化测试)
  【官网】
  https://github.com/NetEaseGame/ATX
  【简介】
  ATX(AutomatorX) 是一款(网易)开源的自动化测试工具,支持测试iOS平台和Android平台的原生应用、游戏、Web应用。
  使用Python来编写测试用例,混合使用图像识别,控件定位技术来完成游戏的自动化。
  附加专用的IDE来完成脚本的快速编写。
  ATX的生态圈:
  [底层驱动]
  · 安卓(Android) https://github.com/openatx/uiautomator2 简称u2
  · 苹果(iOS) https://github.com/openatx/facebook-wda
  [元素定位]
  · Weditor https://github.com/openatx/weditor
  [设备管理]
  atxserver2 https://github.com/openatx/atxserver2
  [测试框架]
  ATX-Test pengchenglin/ATX-Test
  【使用场景】
  · 移动端的UI自动化测试
  一般会结合单元测试框架去开发UI自动化测试框架。
  Python:Pytest + uiautomator2/wda + Allure + Jenkins
  以上7个测试框架,都是臻叔实际工作中最常用到的。如果你是刚入门测试的同学,可能看到这里会一头雾水。
  没关系,你可以先大概了解下这些最常用的测试框架,之后臻叔也会陆续把我之前学习这些工具的笔记整理好,发出来供大家参考。
  最后再小结一下:
  1)Java的白盒测试、API自动化、UI自动化:
  Junit(对Java的方法进行测试);
  TestNG(相比Junit,参数化测试、依赖测试以及套件测试更好用,建议优先选这个);
  2)python的白盒测试、API自动化、UI自动化:
  pytest(功能更多,更简洁高效,优于unittest )。
  3)API自动化、UI自动化:
  Cucumber(面向“注释”编程)。
  4)移动端的UI自动化测试:
  Appium(基于 Nodejs,多平台多语言,OSX、Win和Linux上也能用 )
  ATX(只支持iOS、Android)
  5)UI自动化、爬虫:
  Selenium(兼容性好,Web自动化必选)。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号