IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tests et Performance Java Discussion :

[Rational Functional Tester] Requetes SQL


Sujet :

Tests et Performance Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par défaut [Rational Functional Tester] Requetes SQL
    Bonjour, j'ai besoin de faire des requetes SQL sur ma base pour mes tests.
    Sous functional Tester, je n'ai pas trouver de meilleur moyen que de creer une requete, de mettre les resultats dans un csv puis de transferer les resultats dans un datapool. Ensuite j'utilise ce datapool mais en plus je n'arrive qu'à utiliser la première ligne
    C'est long et fastidieux, j'aimerai bien pouvoir utiliser les requetes directement. Connaissez vous un moyen plus rapide d'utiliser les resultats des requetes directement?
    Sinon savez vous ou trouver de la documentation sur FT, je n'en trouve.
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par défaut
    si ça intéresse quelqu'un j'ai réussi à faire du SQL pendant le fonctionnement du test.
    Au début je lance un bat qui rempli tout seul les data pool.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    @echo test FMI
     
    IF "%3" == "" GOTO Erreur 
     
    set CURRENT_PATH=%cd%
    Set ORA_USER=%1
    Set ORA_PWD=%2
    Set ORA_SID=%3
     
    cd %CURRENT_PATH%\SQL
     
    sqlplus -s %ORA_USER%/%ORA_PWD%@%ORA_SID% @XXX.sql > ..\..\DataPool\XXXXXX.csv
     
    sqlplus -s %ORA_USER%/%ORA_PWD%@%ORA_SID% @YYY.sql >> ..\..\DataPool\XXXXXX.csv
     
    cd %CURRENT_PATH%
     
    cd ..
    cd ..
    cd ..
     
    java DataPoolGeneration %CURRENT_PATH%\..\DataPool\ XXXXXX.csv
     
    cd %CURRENT_PATH%
    del XXXXXX.csv
     
    GOTO Fin
    :Erreur 
    ECHO Le bat doit avoir comme parametres : User_Oracle Pwd_Oracle Sid_Oracle
    :Fin
    ECHO FIN DU PROGRAMME 
    pause

    Comme vous le voyez, ce bat fait appel à un programme JAVA après avoir ajouté le résultat des requêtes dans des fichiers CSV. Ce programme JAVA formate le fichier pour qu'il devienne un Datapool. J'ai du analyser la structure du fichier pour le faire marcher. Si ça intéresse quelqu'un, voilà le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    import java.io.*;
    import java.util.ArrayList;
     
    //-------------------------------------------------------------------------
    //CLASS TestFMICreateDP
    //-------------------------------------------------------------------------
    class DataPoolGeneration 
    {
    	//	-------------------------------------------------------------------
    	//  function main
    	//	Create a datapool 
    	//	Argument : path of .csv file 
    	//  Name of the DataPool : save as .csv file
    	//	-------------------------------------------------------------------
    	public static void main(String[] args) 
    	{
    		try{
    			if(args.length > 0){
    				//	variable declaration
    				String theFileName = (String) args[0];
    				boolean isHeader = true;
    				ArrayList theVariableArrayList = new ArrayList();
    				ArrayList theVariableArrayListValue = new ArrayList();
     
    				int theVarNumber = 0;
    				int theValueNumber = 0;
    				int theTempValueNumber = 0;
    				String theVarName = "";
     
    				//	copying file
    				File theFile = new File(theFileName);
     
    				FileReader theFileReader = new FileReader(theFile);
     
    				//  Use a BufferedReader to read once on disk
    				BufferedReader theBufferedReader = new BufferedReader(theFileReader);
     
    				//read 1st line of file
    				String theLine = theBufferedReader.readLine();
     
    //-------------------------start reading in .csv file-------------------------------------
    				//While not end of buffer
    				while(theLine!=null){
    						theLine = theLine.trim();
    						//ignore blank line at the top of query result
    						if(!theLine.equalsIgnoreCase("")){
    							//search end of ending by ---------  
    							if(theLine.startsWith("----")){
    								isHeader = false;
    								//New Variable
    								theVarNumber++;
    								theVariableArrayListValue = new ArrayList();		
    							}else{
    								//Here are data
    								if(!isHeader){
    									theVariableArrayListValue.add(theLine);
    									theTempValueNumber++;
    									}
    								}
    						}else{  //theLine.equalsIgnoreCase("")
    							//at the end of query result, look for a blank line
    							if (isHeader == false){
    								//New variable
    								isHeader = true;
    								//Insert Value in global ArrayList
    								theVariableArrayList.add(theVariableArrayListValue);
     
    								//Save Max Value Number
    								if (theTempValueNumber>theValueNumber)
    								{
    									theValueNumber=theTempValueNumber;
    								}
    								theTempValueNumber=0;
    							}
    						}	
    						theLine = theBufferedReader.readLine();
    					}
    //-------------------------stop reading in .csv file-------------------------------------
     
    				//Init DataPool name with .csv file name
    				String theDatapoolFileName = theFileName;
    				theDatapoolFileName = theDatapoolFileName.substring(0,theDatapoolFileName.length()-4);
    				theDatapoolFileName = theDatapoolFileName + "_DP.rftdp";
    				FileWriter theFileWriter = new FileWriter(theDatapoolFileName);
    				//	Use a BufferedWriter to write once on disk
    				BufferedWriter theBufferedWriter = new BufferedWriter(theFileWriter);
     
     
     
    //-------------------------start writing in DataPool-------------------------------------
    				//Writing DataPool Header (DataPool work like XML files)
    				theBufferedWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Datapool L=\"Datapool\"><Name T=\"null\"/><Id>qciGBZ2aop8:5AMHN:KjChm8z:8WW</Id><Description T=\"null\"/><Variables L=\"DpVariables\">");
     
    				//Write name of variable in DataPool Header
    				for (int i=0; i<theVarNumber; i++)
    				{
    					theBufferedWriter.write("<Variable L=\"DatapoolVariable\"><Name>");
    					//Create a generic VarName
    					theVarName="Var"+i;
    					theBufferedWriter.write(theVarName);
    					theBufferedWriter.write("</Name><Id>V1.qciGBZ2aop8:5AMHN:KjChm8z:8WW</Id><Description T=\"null\"/><SuggestedType L=\"DatapoolSuggestedType\"><TypeCode>0</TypeCode><SuggestedClassName>String</SuggestedClassName></SuggestedType><Role>-1</Role></Variable>");	
    				}
     
    				//End of Variables section
    				theBufferedWriter.write("</Variables><EquivalenceClasses L=\"DpEquivalenceClasses\"><EquivalenceClass L=\"DatapoolEquivalenceClass\"><Name>EC0</Name><Id>EC0.qciGBZ2aop8:5AMHN:KjChm8z:8WW</Id><Description T=\"null\"/>");
     
    				//Start Records section
    				theBufferedWriter.write("<Records L=\"DpRecords\">");
     
    				//Writing 
    				for(int i=0;i<theValueNumber;i++){
     
    					//New record (variable)
    					theBufferedWriter.write("<Record L=\"DatapoolRecord\">");
    						//New Cell
    						theBufferedWriter.write("<Cells L=\"DpCells\">");	
    								for (int j=0; j<theVarNumber; j++)
    								{
    									//select the right variable ArrayList
    									theVariableArrayListValue = (ArrayList)theVariableArrayList.get(j);
    									theBufferedWriter.write("<Cell>");
    										//data insert
    										if (i<theVariableArrayListValue.size())
    										{
    											theBufferedWriter.write((String)theVariableArrayListValue.get(i));
    										}
    									theBufferedWriter.write("</Cell>");
    								}			
    						theBufferedWriter.write("</Cells>");
    					theBufferedWriter.write("</Record>");
     
    				}
     
    				//Writing DataPool Footer / end of records section
    				theBufferedWriter.write("</Records></EquivalenceClass></EquivalenceClasses><DefaultEquivalenceClass>0</DefaultEquivalenceClass><EquivalenceClassNextId>1</EquivalenceClassNextId><VariableNextId>3</VariableNextId></Datapool>");
    //--------------------------stop writing in DataPool--------------------------------------
     
    				//Writing Buffer in the file
    				theBufferedWriter.flush();
    			}
    		}catch(Exception theException){
    				theException.printStackTrace();
    		}
    	}
    }//-------------------------------------------------------------------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tester requete sql
    Par jexistetjrs dans le forum JDBC
    Réponses: 4
    Dernier message: 31/05/2007, 15h07
  2. [Rational Functional Tester] Soucis de compatibilité (Applet)
    Par Aymen- dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 24/04/2007, 11h41
  3. [Rational Functional Tester] Test d'objet non present
    Par ryo ohki dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 06/02/2007, 18h34
  4. Tester des requetes sql
    Par Premium dans le forum SGBD
    Réponses: 2
    Dernier message: 24/11/2006, 01h43
  5. Tester des requetes sql
    Par Premium dans le forum Langage
    Réponses: 1
    Dernier message: 24/11/2006, 01h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo