(十一)TestNG学习之路—BeanShell高级用法

目录

(一)TestNG学习之路—HelloWorld入门
(二)TestNG学习之路—注解及属性概览
(三)TestNG学习之路—TestNG.xml/YAML
(四)TestNG学习之路—注解详述之@Test
(五)TestNG学习之路—注解详述之参数化
(六)TestNG学习之路—注解详述之@Factory
(七)TestNG学习之路—注解详述之忽略测试
(八)TestNG学习之路—注解详述之并发
(九)TestNG学习之路—失败测试重跑
(十)TestNG学习之路—编码执行TestNG
(十一)TestNG学习之路—BeanShell高级用法
(十二)TestNG学习之路—注解转换器
(十三)TestNG学习之路—方法拦截器
(十四)TestNG学习之路—TestNG监听器
(十五)TestNG学习之路—依赖注入
(十六)TestNG学习之路—测试报告
(十七)基于TestNG+Rest Assured+Allure的接口自动化测试框架

前言

用过Jmeter的童鞋肯定都听说过Beanshell,BeanShell是一种松散类型的脚本语言(和JS类似),一种完全符合java语法的java脚本语言,但其也拥有自己的语法和方法,足以可见其功能的强大。更让你吃惊的是,TestNG居然可以同Beanshell结合,构建强大的testng.xml配置。

环境配置

登录beanshell官网下载bsh-2.0b4.jar,放到$JAVA_HOME/jre/lib/ext目录下。更详细的说明可以参考beanshell手册。

To install as an extension place the bsh.jar file in your
$JAVA_HOME/jre/lib/ext folder. (OSX users: place the bsh.jar in
/Library/Java/Extensions or ~/Library/Java/Extensions for individual users.)
Or add BeanShell to your classpath like this:
windows: set classpath %classpath%;bsh-xx.jar

示例

当在

执行结果如下:

TestNGHelloWorld1 beforTest!
TestNGHelloWorld1 Test1!
TestNGHelloWorld1 Test2! Tom
TestNGHelloWorld1 AfterTest!

===============================================
All Test Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

由此可见,beanshell可让测试/开发人员更灵活地对testng.xml进行配置。但需要关注以下几点:

  • 它必须返回一个布尔值。除了这个约束之外,还允许任何有效的BeanShell代码(例如,您可能想在工作日期间返回true,在周末返回false,这将允许您根据日期以不同的方式运行测试)。
  • 为了方便起见,TestNG定义了以下变量:
    java.lang.reflect.Method method: 当前的测试方法
    org.testng.ITestNGMethod testngMethod: 当前测试方法的描述
    java.util.Map groups: 当前测试方法所属组的映射

上述testng.xml的groups.containsKey返回的正是布尔值。

扩展学习资料

关于beanshell的学习,可参考beanshell手册。

你可能感兴趣的:((十一)TestNG学习之路—BeanShell高级用法)