????綽??400-035-7887/021-6072 5088
      ??? ???????? ????????? ???????
      SPASVO????
      • ????
      • ?????????
        TestOne??????????????? ATF?????????????? AutoRunner???????????? MobileRunner???????????????
      • ???????
      • ???????
        PerformanceRunner (??????????) web pr(???????????) APM (?????????)
      • RPA??????
      • ?з?????
        ALM???з????????? ???????CA
      • ?????????
        ????????? ??????? Alltesting?????
      • ???????
      • ????????
        ??????????? ??????????
      • ??????

        ???????

        PerformanceRunner ?????????????? APM????????????? web-PR?????????????????

        RPA??????

        AutoRunner Process ????????????

        ?????????

        TestOne??????????????? ATF?????????????? AutoRunner???????????????? MobileRunner??????????????? AR365????????????

        ???????

        ALM+TestCenter?????????????????? ProjectCenter?????????????? TestCenter?????????????? RequisiteCenter?????????? CodeAnalyzer??????????? ????TCE??bug????????

        ??????

        PerformanceRunner?????????????? ALM+TestCenter?????????????????? ATF?????????????? AutoRunner???????????????? CodeAnalyzer???????????

        ???????

        ???????????????? ?????????? ???????????? ?????????? SPASVO?????????
      • ???????
      • ???????

        ????

        ???? ??????????????? ??????м?????????????? ????????????? ??????????????????????????? ?з?????????????? ????????????? ????????????????? ?????????????????????????? ????????????? ??????????? ??????????????? ?з?????????????? ????????????? ?????????????????????????? ???APP??????????????? ???????????????? ???? ??????????????? ????????????? ?з?????????????? ???? ??????????????? ?????????????

        ?о????

        ????????????? ?????????????? ????????????? ??????????????? APM???????/???·????????? ?з?????????????? ?????????????

        ???

        ??????????????????? ????????????? ????????????? ?????????? app??????????????? ????????????? ??????????????? APM???????/???·????????? ?з?????????????? ?????????????

        ??????

        ??????????????跽?? ????????????? ???????γ???? ????????????? ??????????????? ??????????????? ????????????跽?? RPA?????????????跽?? ??????????????跽?? ??У??????????????? ??У????????????????????? ???????????μ????跽?? ?????? ???????? ????????

        ??????

        ?????????????? ?????????????? ?????????????

        ????

        ????????/???? ?????????????? ???????? ??????λ/?????? ????????????? ??????????????? ???????????????? ??????app??h5??С??????????????????? ?з?????????????? ?????????????
      • ???????
      • PerformanceRunner (??????????) APM (?????????)
      • ?????????
      • TestOne??????????????? ATF?????????????? AutoRunner???????????? MobileRunner???????????????
      • ?з?????
      • ALM???з????????? TestCenter??????????????
      • RPA??????
      • ???????CA
      • ?????
      • ???????
      • PerformanceRunner ?????????????? APM????????????? web-PR?????????????????
      • RPA??????
      • AutoRunner Process ????????????
      • ?????????
      • TestOne??????????????? ATF?????????????? AutoRunner???????????????? MobileRunner??????????????? AR365????????????
      • ???????
      • ALM+TestCenter?????????????????? ProjectCenter?????????????? TestCenter?????????????? RequisiteCenter?????????? CodeAnalyzer??????????? ????TCE??bug????????
      • ??????
      • PerformanceRunner?????????????? ALM+TestCenter?????????????????? ATF?????????????? AutoRunner???????????????? CodeAnalyzer???????????
      • ???????
      • ???????????????? ?????????? ???????????? ?????????? SPASVO?????????
      • ???????
      • ???
      • ???? ?о???? ??? ?????? ?????? ????
      • ????????
      ????λ?????????? >> ?????????? >> ???????

      ???DBUnit?????????

      ???????????? ???????[ 2013/11/22 16:01:07 ] ????????

      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.sql.Connection;
      import java.sql.SQLException;
      import java.sql.Statement;
      import java.util.ArrayList;
      import java.util.List;
      import java.util.Map;
      import java.util.Properties;
      import java.util.TreeMap;
      import junit.framework.Assert;
      import org.dbunit.Assertion;
      import org.dbunit.DatabaseUnitException;
      import org.dbunit.IDatabaseTester;
      import org.dbunit.JdbcDatabaseTester;
      import org.dbunit.database.DatabaseConnection;
      import org.dbunit.database.IDatabaseConnection;
      import org.dbunit.database.QueryDataSet;
      import org.dbunit.dataset.Column;
      import org.dbunit.dataset.IDataSet;
      import org.dbunit.dataset.ITable;
      import org.dbunit.dataset.ReplacementDataSet;
      import org.dbunit.dataset.filter.DefaultColumnFilter;
      import org.dbunit.dataset.xml.FlatXmlDataSet;
      import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
      import org.junit.runner.RunWith;
      import org.springframework.test.context.ContextConfiguration;
      import org.springframework.test.context.TestExecutionListeners;
      import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
      import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
      import org.springframework.transaction.annotation.Transactional;
      @RunWith(SpringJUnit4ClassRunner.class)
      @ContextConfiguration(locations = { "classpath:/spring.xml" })
      @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class })
      @Transactional
      public abstract class BasedTestCase {
      protected static Properties properties = new Properties();
      static {
      try {
      /**
      * The DatabaseConfig.properties stores the database configuration information. It's like this: <br>
      * driverClass=oracle.jdbc.OracleDriver<br>
      * db_inst=jdbc:oracle:thin:@1.1.1.1:1521:schema<br>
      * db_user=username<br>
      * db_pwd=password<br>
      */
      properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("DatabaseConfig.properties"));
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
      /**
      * This abstract is used for prepare data before do the real method call.
      *
      * @param iconn
      * @throws Exception
      */
      protected abstract void prepareData(IDatabaseConnection iconn) throws Exception;
      /**
      * Execute one sql
      *
      * @param iconn
      * @param sql
      * @throws Exception
      */
      protected void execSql(IDatabaseConnection iconn?? String sql) throws Exception {
      Connection con = iconn.getConnection();
      Statement stmt = con.createStatement();
      try {
      stmt.execute(sql);
      } finally {
      if (stmt != null) {
      stmt.close();
      }
      }
      }
      /**
      * Get IDatabaseConnection connection
      *
      * @return
      * @throws Exception
      */
      protected IDatabaseConnection getIDatabaseConnection() throws Exception {
      String db_inst = ""?? db_user = ""?? db_pwd = ""?? driverClass = "";
      //The default is commit the record
      db_user = properties.getProperty("db_user");
      db_inst = properties.getProperty("db_inst");
      db_pwd = properties.getProperty("db_pwd");
      driverClass = properties.getProperty("driverClass");
      IDatabaseConnection iconn = null;
      IDatabaseTester databaseTester;
      databaseTester = new JdbcDatabaseTester(driverClass?? db_inst?? db_user?? db_pwd);
      iconn = databaseTester.getConnection();
      return iconn;
      }
      /**
      * This is used to assert the data from table and the expected data set. If all of the them has the same records?? then the assert is true.
      *
      * @param tableName
      * @param sql
      * @param expectedDataSet
      * @param iconn
      * @throws Exception
      */
      protected void assertDataSet(String tableName?? String sql?? IDataSet expectedDataSet?? IDatabaseConnection iconn) throws Exception {
      printDataAsXml(iconn?? tableName?? sql);
      QueryDataSet loadedDataSet = new QueryDataSet(iconn);
      loadedDataSet.addTable(tableName?? sql);
      ITable table1 = loadedDataSet.getTable(tableName);
      ITable table2 = expectedDataSet.getTable(tableName);
      Assert.assertEquals(table2.getRowCount()?? table1.getRowCount());
      DefaultColumnFilter.includedColumnsTable(table1?? table2.getTableMetaData().getColumns());
      Assertion.assertEquals(table2?? table1);
      }
      /**
      * Create the data set by input stream which read from the dbunit xml data file.
      *
      * @param is
      * @return
      * @throws Exception
      */
      protected ReplacementDataSet createDataSet(InputStream is) throws Exception {
      return new ReplacementDataSet(new FlatXmlDataSetBuilder().build(is));
      }
      /**
      * Convert the data in the ITable to List
      *
      * @param table
      * @return
      * @throws Exception
      */
      private List<Map<??? ?>> getDataFromTable(ITable table) throws Exception {
      List<Map<??? ?>> ret = new ArrayList<Map<??? ?>>();
      int count_table = table.getRowCount();
      if (count_table > 0) {
      Column[] columns = table.getTableMetaData().getColumns();
      for (int i = 0; i < count_table; i++) {
      Map<String?? Object> map = new TreeMap<String?? Object>();
      for (Column column : columns) {
      map.put(column.getColumnName().toUpperCase()?? table.getValue(i?? column.getColumnName()));
      }
      ret.add(map);
      }
      }
      return ret;
      }
      /**
      * Get data by the SQL and table name?? then convert the data in the ITable to List
      *
      * @param iconn
      * @param tableName
      * @param sql
      * @return
      * @throws Exception
      */
      protected List<Map<??? ?>> getTableDataFromSql(IDatabaseConnection iconn?? String tableName?? String sql) throws Exception {
      ITable table = iconn.createQueryTable(tableName?? sql);
      return getDataFromTable(table);
      }
      /**
      * Get data by the SQL and table name?? then convert the data in the ITable to List. And the print the data as xml data format.
      *
      * @param iconn
      * @param tableName
      * @param sql
      * @throws Exception
      */
      protected void printDataAsXml(IDatabaseConnection iconn?? String tableName?? String sql) throws Exception {
      List<Map<??? ?>> datas = getTableDataFromSql(iconn?? tableName?? sql);
      StringBuffer sb;
      for (Map<??? ?> data : datas) {
      sb = new StringBuffer();
      sb.append("<" + tableName.toUpperCase() + " ");
      for (Object o : data.keySet()) {
      sb.append(o + "="" + data.get(o) + "" ");
      }
      sb.append("/>");
      System.out.println(sb.toString());
      }
      }
      /**
      * Export data for the table names by the given Connection into the resultFile.<br>
      * The export data will be DBUnit format.
      *
      * @param conn
      * @param tableNameList
      * @param resultFile
      * @throws SQLException
      * @throws DatabaseUnitException
      * @throws FileNotFoundException
      * @throws IOException
      */
      public void exportData(Connection conn?? List<String> tableNameList?? String resultFile) throws SQLException?? DatabaseUnitException?? FileNotFoundException?? IOException {
      if (conn == null) {
      return;
      }
      IDatabaseConnection iconn = new DatabaseConnection(conn);
      exportData(iconn?? tableNameList?? resultFile);
      }
      /**
      * Export data for the table names by the given IDatabaseConnection into the resultFile.<br>
      * The export data will be DBUnit format.
      *
      * @param conn
      * @param tableNameList
      * @param resultFile
      * @throws SQLException
      * @throws DatabaseUnitException
      * @throws FileNotFoundException
      * @throws IOException
      */
      public void exportData(IDatabaseConnection iconn?? List<String> tableNameList?? String resultFile) throws SQLException?? DatabaseUnitException?? FileNotFoundException?? IOException {
      QueryDataSet dataSet = null;
      if (iconn == null) {
      return;
      }
      if (tableNameList == null || tableNameList.size() == 0) {
      return;
      }
      try {
      dataSet = new QueryDataSet(iconn);
      for (String tableName : tableNameList) {
      dataSet.addTable(tableName);
      }
      } finally {
      if (dataSet != null) {
      FlatXmlDataSet.write(dataSet?? new FileOutputStream(resultFile));
      }
      }
      }
      }
      ????1234????
      ???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????

      ??????

      iOS???????mocha??chai??sinon??istanbul???????????????????????????????????????д?????Java????????7??????Android?????????Robolectric3.0????(?)???Kiwi?????????????????????????????????Python?????????????????????????????????????Controller????????д?????????10???????????????????Angular????????????Component??Directive??Pipe ???ServiceAndroid????????????????????????????????--Mockito??????iOS UnitTest???????Vue?????????????????

      ?????

      ???????????????

      ???????????????

      ????????????

      ????????????

      ?????????????????

      ?????????????????

      ??????????

      ??????????

      ????????????

      ????????????

      ????з????????????

      ????з????????????

      ATF??????????????

      ATF??????????????

      ??????????

      ??????????

      ??????????

      ??????????

      ??????????

      ??????????

      ???·???

      ??????????????????

      2023/3/23 14:23:39

      ???д?ò??????????

      2023/3/22 16:17:39

      ????????????????????Щ??

      2022/6/14 16:14:27

      ??????????????????????????

      2021/10/18 15:37:44

      ???????????????

      2021/9/17 15:19:29

      ???·???????·

      2021/9/14 15:42:25

      ?????????????

      2021/5/28 17:25:47

      ??????APP??????????

      2021/5/8 17:01:11

      ????????

      ?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????

      ??????

      APP??????? selenium ??????????? ??????? RPA??????? app????????? ??????????

      ????綽

      021-6072 5088-8054

      ?????????? 31010702002953??

      ??ICP??07036474?? 2003-2020 ??????? ??????????????????? Shanghai ZeZhong Software Co.,Ltd.

      ?????????????

      ??????????/????????? ?????????? ????????????/?????????? ???????????????/App??????? ALM??????????? ??????????/?????????? Selenium??????????? RPA???????????????

      ?????????

      ??????? RPA??????? ??????????????????? ????????????????? ???????????? ??????????????????? ???????????????????? ????????????? ????????????? ????????????? ?????????????? ??????????????? ????????????????????? ???????????????? ??????????????????? ?????????????

      ???????

      ???????:021-6072 5088-8054

      ???????:021-6072 5088-8006

      sales@spasvo.com

      ??ICP??07036474?? 2003-2022 ??????? ??????????????????? Shanghai ZeZhong Software Co.,Ltd.
      ????
      ???

      ???????
      ??????????????

      ????????????
      ????
      ????
      ????
      ????

      感谢您访问我们的网站,您可能还对以下资源感兴趣:

      欧美、另类亚洲日本一区二区
    • <pre id="9gc6x"><noframes id="9gc6x">
      • <label id="9gc6x"><legend id="9gc6x"></legend></label>