当前位置: 首页 > news >正文

移动端h5网站开发服务上海抓捕236名

移动端h5网站开发服务,上海抓捕236名,企业网站备案价格,自己做的网站有什么用一、testNG 1. testNG优势 注解驱动#xff1a; TestNG 使用注解来标识测试方法、测试类和配置方法#xff0c;使得测试更具可读性。 并行执行#xff1a; TestNG 支持多线程并行执行测试#xff0c;可以加速测试套件的执行。 丰富的配置#xff1a; 可以通过 XML 配置文…一、testNG 1. testNG优势 注解驱动 TestNG 使用注解来标识测试方法、测试类和配置方法使得测试更具可读性。 并行执行 TestNG 支持多线程并行执行测试可以加速测试套件的执行。 丰富的配置 可以通过 XML 配置文件来定义测试套件的执行顺序、依赖关系等。 分组测试 可以将测试方法分组实现对特定测试分组的执行。 参数化测试 可以使用 Parameters 和 DataProvider注解实现参数化测试 依赖管理 可以通过 dependsOnMethods 或 dependsOnGroups 设置测试方法之间的依赖关系。 断言灵活 TestNG 提供了丰富的断言方法用于验证测试结果。 2. testNG常用注解 Test用于标识测试方法执行单元测试。 BeforeSuite在测试套件之前执行。 AfterSuite在测试套件之后执行。 BeforeTest在测试类之前执行。 AfterTest在测试类之后执行。 BeforeClass在测试类中的所有测试方法之前执行。 AfterClass在测试类中的所有测试方法之后执行。 BeforeMethod在每个测试方法之前执行。 AfterMethod在每个测试方法之后执行。 DataProvider用于提供测试数据。 Parameters用于参数化测试。 dependsOnMethods设置测试方法的依赖关系。 package AI.Test.testNG;import org.testng.annotations.*;public class TestNGCheck {BeforeSuitepublic void beforeSuite(){System.out.println(beforeSuite);}BeforeTestpublic void beforeTest() {System.out.println(Before Test);}BeforeClasspublic void beforeClass() {System.out.println(Before Class);}BeforeMethodpublic void beforeMethod() {System.out.println(Before Method);}Test(groupsPerformance)public void testMethod1() {System.out.println(Test Method 1);}AfterMethodpublic void afterMethod() {System.out.println(After Method);}AfterClasspublic void afterClass() {System.out.println(After Class);}AfterTestpublic void afterTest() {System.out.println(After Test);}AfterSuitepublic void afterSuite() {System.out.println(After Suite);}}3. testNG中Test有哪些参数 1. 常用的 groups 用于将测试方法分组可以在 XML 配置中选择性地执行指定组的测试。 timeOut 指定方法的超时时间单位为毫秒。 alwaysRun 如果设置为 true则无论依赖的方法是否失败当前方法都会执行。 dependsOnMethods 指定测试方法的依赖关系被依赖的方法会在当前方法之前执行。 enabled 控制测试方法是否启用设置为 false 则禁用该方法。 description 提供关于测试方法的简要描述。 invocationCount 指定测试方法被调用的次数。2. 数据驱动需要结合DataProvider注解对应获取参数的方法 dataProvider 指定使用哪个数据提供者来提供测试数据。 dataProviderClass 指定数据提供者所在的类。3.并发 invocationCount 指定测试方法被调用的次数。 threadPoolSize 指定线程池的大小用于并行执行测试方法。 dataProviderThreadCount 指定数据提供者线程的数量。 举例 Test(groupsPerformance)public void testMethod1() {System.out.println(Test Method 1);}Test(priority1)public void testMethod2() {System.out.println(Test Method 2);}Test(dependsOnMethods testMethod4, alwaysRun false)public void testMethod3(){System.out.println(Test Method 3);}Test(timeOut 3000)public void testMethod4() throws InterruptedException {Thread.sleep(4000);System.out.println(Test Method 4);}Test(enabled false, description 用于测试enable注解)public void testMethod5() {System.out.println(Test Method 5);} 4. 在 TestNG 中实现参数化测试 以Yaml文件为例 创建一个Yaml文件testdata.yaml testdata:- parameters: [2, 3, 5]- parameters: [10, 20, 30]获取测试数据及使用 import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import org.yaml.snakeyaml.Yaml;import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Map;public class ParameterizedTest {DataProvider(name testData)public Object[][] getYamlData() {ListObject[] testData new ArrayList();Yaml yaml new Yaml();InputStream inputStream getClass().getClassLoader().getResourceAsStream(testdata.yaml);MapString, ListListInteger dataMap yaml.load(inputStream);ListListInteger parametersList dataMap.get(testdata);for (ListInteger parameters : parametersList) {testData.add(parameters.toArray());}return testData.toArray(new Object[testData.size()][]);}Test(dataProvider testData)public void testParameterized(int param1, int param2, int param3) {System.out.println(Test with parameters: param1 , param2 , param3);// 执行测试逻辑使用参数化数据进行测试} }5. 执行顺序 TestNG 默认情况下会按照测试方法的名称升序执行。 可以通过设置 priority 属性来指定执行顺序。 也可以使用dependsOnMethods 6. testNG断言 assertEquals(expected, actual) 验证两个值是否相等。如果不相等会抛出 AssertionError。assertNotEquals(expected, actual) 验证两个值是否不相等。如果相等会抛出 AssertionError。assertTrue(condition) 验证给定的条件是否为真。如果条件为假会抛出 AssertionError。assertFalse(condition) 验证给定的条件是否为假。如果条件为真会抛出 AssertionError。assertNull(object) 验证给定的对象是否为 null。如果对象不为 null会抛出 AssertionError。assertNotNull(object) 验证给定的对象是否不为 null。如果对象为 null会抛出 AssertionError。assertSame(expected, actual) 验证两个引用是否指向同一个对象。如果不指向同一个对象会抛出 AssertionError。assertNotSame(expected, actual) 验证两个引用是否指向不同的对象。如果指向同一个对象会抛出 AssertionError。 二、Junit5 1. junit5的优势 现代化的设计 JUnit 5 的架构更加模块化和现代化采用了模块化体系结构使得集成和扩展更加容易。它引入了 Jupiter新的测试引擎和 Vintage支持 JUnit 4两个模块具有更好的灵活性。Lambda 表达式支持 JUnit 5 充分利用了 Java 8 的 Lambda 表达式特性使测试代码更加简洁。TestNG 也支持 Lambda 表达式但 JUnit 5 的设计更加贴合现代 Java 特性。参数化测试 JUnit 5 提供了内置的参数化测试功能使用 ParameterizedTest 注解可以轻松地对测试方法使用不同的参数运行。动态测试 JUnit 5 引入了动态测试允许在运行时生成和执行测试。使用 TestFactory 注解可以动态生成测试方法以适应更加灵活的测试需求。扩展机制 JUnit 5 的扩展机制更加强大和灵活使用 ExtendWith 注解可以轻松应用自定义扩展甚至可以自定义扩展来修改测试运行时的行为。条件测试 JUnit 5 允许根据条件决定是否执行测试方法使用 EnabledOnOs、DisabledIf 等注解可以根据操作系统、环境变量等条件来控制测试执行。并行执行 TestNG 在并行执行方面有很强的功能但 JUnit 5 也在逐步增强并行执行的支持对于简单的并行需求JUnit 5 也可以胜任。灵活性 JUnit 5 允许更多的自定义配置使得测试执行的控制更加灵活可以根据不同的项目需求进行调整。2. 常用注解 Test: 用于标记测试方法。DisplayName: 为测试方法或测试类指定一个可读的名称。BeforeEach: 在每个测试方法之前执行的方法。AfterEach: 在每个测试方法之后执行的方法。BeforeAll: 在所有测试方法之前执行的方法必须是静态方法。AfterAll: 在所有测试方法之后执行的方法必须是静态方法。Disabled: 标记测试方法或测试类为禁用状态。ParameterizedTest: 用于参数化测试的注解。RepeatedTest: 用于指定重复执行测试方法的次数。Timeout: 用于设置测试方法执行的最大时间。时间是sTag: 为测试方法添加标签用于分组和过滤测试。Nested: 用于嵌套测试类。TestFactory: 用于动态测试返回动态生成的测试方法。 package AI.Test.testNG;import org.junit.jupiter.api.*;public class Junit5TestCheck {BeforeAllstatic void beforeAll() throws InterruptedException {System.out.println(Before All);Thread.sleep(3000);}BeforeEachvoid beforeEach(){System.out.println(BeforeEach);}TestDisplayName(Junit5TestCheck test1)void test1(){System.out.println(test1);}TestRepeatedTest(2)DisplayName(Junit5TestCheck test2)void test2(){System.out.println(test2);}TestDisabledDisplayName(Junit5TestCheck test3)void test3(){System.out.println(test3);}TestTimeout(3)void test4() throws InterruptedException {Thread.sleep(4);System.out.println(test4);}AfterEachvoid afterEach(){System.out.println(AfterEach);}AfterAllstatic void afterAll(){System.out.println(After All);}}3. TestFactory使用示例 TestFactory其实就是参数化执行同一条用例 通常情况下我们会使用 ParameterizedTest 注解来参数化执行不同的测试用例每次测试会使用不同的参数进行运行。而 TestFactory 则是一种更为动态和灵活的方式它允许你在运行时生成测试用例。 import org.junit.jupiter.api.TestFactory; import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.Test;import java.util.stream.Stream;import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.DynamicTest.dynamicTest;public class DynamicTestExample {TestFactoryStreamDynamicTest dynamicTestFactory() {return Stream.of(dynamicTest(Test 1, () - assertEquals(2, add(1, 1))),dynamicTest(Test 2, () - assertEquals(4, add(2, 2))),dynamicTest(Test 3, () - assertEquals(6, add(3, 3))));}int add(int a, int b) {return a b;} }4. ParameterizedTest import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import static org.junit.jupiter.api.Assertions.assertEquals;public class ParameterizedTestExample {ParameterizedTestCsvSource({1, 2, 3, 0, 0, 0, -1, -2, -3})void testAddition(int a, int b, int result) {assertEquals(result, add(a, b));}int add(int a, int b) {return a b;} }
文章转载自:
http://www.morning.srcth.cn.gov.cn.srcth.cn
http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn
http://www.morning.dgxrz.cn.gov.cn.dgxrz.cn
http://www.morning.trkhx.cn.gov.cn.trkhx.cn
http://www.morning.tqpr.cn.gov.cn.tqpr.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.lqffg.cn.gov.cn.lqffg.cn
http://www.morning.crrmg.cn.gov.cn.crrmg.cn
http://www.morning.jnrry.cn.gov.cn.jnrry.cn
http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn
http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn
http://www.morning.jlthz.cn.gov.cn.jlthz.cn
http://www.morning.wkqrp.cn.gov.cn.wkqrp.cn
http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn
http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn
http://www.morning.wqpb.cn.gov.cn.wqpb.cn
http://www.morning.thjqk.cn.gov.cn.thjqk.cn
http://www.morning.yqlrq.cn.gov.cn.yqlrq.cn
http://www.morning.rynrn.cn.gov.cn.rynrn.cn
http://www.morning.rksnk.cn.gov.cn.rksnk.cn
http://www.morning.gbsby.cn.gov.cn.gbsby.cn
http://www.morning.flncd.cn.gov.cn.flncd.cn
http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn
http://www.morning.rrpsw.cn.gov.cn.rrpsw.cn
http://www.morning.fxwkl.cn.gov.cn.fxwkl.cn
http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn
http://www.morning.qrcsb.cn.gov.cn.qrcsb.cn
http://www.morning.drfrm.cn.gov.cn.drfrm.cn
http://www.morning.zqfz.cn.gov.cn.zqfz.cn
http://www.morning.lhjmq.cn.gov.cn.lhjmq.cn
http://www.morning.ncrk.cn.gov.cn.ncrk.cn
http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn
http://www.morning.xnflx.cn.gov.cn.xnflx.cn
http://www.morning.xqgh.cn.gov.cn.xqgh.cn
http://www.morning.dfwkn.cn.gov.cn.dfwkn.cn
http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn
http://www.morning.mnyzz.cn.gov.cn.mnyzz.cn
http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn
http://www.morning.pmjhm.cn.gov.cn.pmjhm.cn
http://www.morning.jpdbj.cn.gov.cn.jpdbj.cn
http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn
http://www.morning.jkfyt.cn.gov.cn.jkfyt.cn
http://www.morning.bytgy.com.gov.cn.bytgy.com
http://www.morning.qwgct.cn.gov.cn.qwgct.cn
http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com
http://www.morning.gczqt.cn.gov.cn.gczqt.cn
http://www.morning.mftzm.cn.gov.cn.mftzm.cn
http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.glxdk.cn.gov.cn.glxdk.cn
http://www.morning.rcklc.cn.gov.cn.rcklc.cn
http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn
http://www.morning.sthp.cn.gov.cn.sthp.cn
http://www.morning.yrddl.cn.gov.cn.yrddl.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.qqbw.cn.gov.cn.qqbw.cn
http://www.morning.qrsm.cn.gov.cn.qrsm.cn
http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn
http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn
http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn
http://www.morning.mjxgs.cn.gov.cn.mjxgs.cn
http://www.morning.ydryk.cn.gov.cn.ydryk.cn
http://www.morning.qytpt.cn.gov.cn.qytpt.cn
http://www.morning.fwllb.cn.gov.cn.fwllb.cn
http://www.morning.ykrck.cn.gov.cn.ykrck.cn
http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn
http://www.morning.czqqy.cn.gov.cn.czqqy.cn
http://www.morning.qkrzn.cn.gov.cn.qkrzn.cn
http://www.morning.grzpc.cn.gov.cn.grzpc.cn
http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn
http://www.morning.fxzgw.com.gov.cn.fxzgw.com
http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn
http://www.morning.yesidu.com.gov.cn.yesidu.com
http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn
http://www.morning.rdmz.cn.gov.cn.rdmz.cn
http://www.morning.lczxm.cn.gov.cn.lczxm.cn
http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn
http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn
http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn
http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn
http://www.tj-hxxt.cn/news/244744.html

相关文章:

  • 东莞建网站公司平台页面模板怎么删除
  • 衡水做wap网站的公司专业的o2o网站建设
  • 瑞安微网站建设公司建设网站的可行性分析
  • 咸阳网站建设求职简历襄阳市住房城乡建设部网站
  • 宁波专业建设网站建站公司wordpress邮箱验证码注册
  • 自己做的网站可以运营不广州正规网站建设有哪些
  • 网站开发 去哪里找页面建设银行网站怎么不可登入
  • 网上做兼职网站有哪些工作jsp网站开发技术的开发
  • 衡水php网站建设哈尔滨房产信息网官网
  • 校园网站做自己的广告临沂进出口企业
  • 男男互做网站响应 网站建设
  • 岳阳网站岳阳建站建设银行U盾不自己弹网站了
  • 企业网站的必要性网站开通支付宝收款
  • 网站已付款方式myeclipse做网站
  • 电商网站运营建设的目标怎样查看网站总浏览量
  • 校园网站 建设 意义做网站的IDE
  • 古色古香网站模板动漫网站建设方案设计
  • 站长网站优点美间软装官网
  • 外贸跨境电商网站建设开发html中文美食网站
  • 网站运营的提成方案怎么做最新网站制作公司哪个好
  • 最新的网站建设架构建设小型网站
  • 做网站有什么专业术语个人网站做导购可以吗
  • 怎么用nas做网站服务器网站规划建设与管理维护教学大纲
  • 网站优化哪家专业新闻发布会方案
  • 宝安多屏网站建设公司好吗网站服务器基本配置
  • 网站开发公司需要哪些资质嘉兴百度快照优化排名
  • 网站首页图片大全公司官网是什么意思
  • 四川网站备案咨询网服务器 wordpress 邮件设置
  • 做视频好用的素材网站用ps做班级网站
  • 查流量网站鱼巴士设计师服务平台