Forum Discussion

WillyPete's avatar
WillyPete
Contributor
7 years ago
Solved

Want a single log entry that prints a value from a spreadsheet AND a variable from the Keyword

Trying to pull a value from a spreadsheet and a variable for the keyword test being run and print them as a single log entry.  Can this be done? I cannot program and can only use the predefined commands in TestComplete.

  • Marsha_R's avatar
    Marsha_R
    7 years ago

    The not-so-pretty way would be to add another variable and set it equal to the table data value and then use that new variable in the code expression.

     

    tristaanogre If there's a spiffy trick for this I don't know it.  Any ideas?

     

     

26 Replies

  • Marsha_R's avatar
    Marsha_R
    Champion Level 3

    use Log.Message

    https://support.smartbear.com/testcomplete/docs/keyword-testing/reference/logging/message.html

     

    for the message text in Log.Message use Code Expression

    https://support.smartbear.com/testcomplete/docs/keyword-testing/basic/operation-parameters.html

     

    you will have one line of code that will look something like

    "Spreadsheet = " + MySpreadsheet.Value + " My Variable Value = " + KeywordTest.Variable.MyVariable

     

     

    if you need help with that code line, then we need to see a screenshot of your test that references the spreadsheet and the name of your variable

     

     

     

     

     

     

     

    • WillyPete's avatar
      WillyPete
      Contributor

      Thank You Marsha!

       

      I am able to get the Keyword variable using the following code expression

      KeywordTests.Sheet1.Variables.lens

       

      What I don't know how to do is format a code expression to obtain a string from a cell on the spreadsheet.

      I have tried the general format you mentioned:

      CountryLanguageTestSet.Country

       

      and I got the following error:

      Unable to evaluate the operation's "MessageText" parameter. Error: NameError: name 'CountryLanguageTestSet' is not defined

       

       

      I have also tried designating the spreadsheet as a variable (CountryLanguageTestSet) and calling that variable( KeywordTests.Sheet1.Variables.CountryLanguageTestSet) as a code expression but I cannot specify a particular cell within the spreadsheet so I get a blank entry in the log but no error, and when I try to concatenate the working Keyword variable with this variable I get the following error:

      Unable to evaluate the operation's "MessageText" parameter. Error: TypeError: unsupported operand type(s) for +: 'IDispatchWrapper' and 'str'

       

      If I try and specify a particular cell using the created variable as the only code expression:

      KeywordTests.Sheet1.Variables.CountryLanguageTestSet.Country

       

      i get the following error:

      Unable to evaluate the operation's "MessageText" parameter. Error: AttributeError: The object does not support this property or method

       

      I understand that you asked for screenshots but I am calling variables in one keyword test from another keyword test and I dont think I could make the screenshots make much sense...

       
       

       

      To answer some of the other comments, I do understand programming structures and logic, I have taken a number of programming classes but that was many years ago and I did not use them, so I am only left with the general knowledge.  My test is an automated test for a website, I cycle through a spreadsheet using a data driven loop to determine the country and language to select, then I use other spreadsheets for the input and verification values. The test currently consists of a "main" keyword test which calls other keyword tests depending on the data found in the country and language spreadsheet. This will allow testers to run the script and control the areas to be tested without having to understand the TestComplete keyword scripting, they just have to edit a spreadsheet according to the documentation I am providing.

      • Marsha_R's avatar
        Marsha_R
        Champion Level 3

        Okay, we are close. 

         

        I cycle through a spreadsheet using a data driven loop to determine the country and language to select, then I use other spreadsheets for the input and verification values. 

         

        We are going to use the value that you get in the data driven loop.  If you screenshot the loop where you use it, I can pick that out for you.

  • NisHera's avatar
    NisHera
    Valued Contributor

    most simple way to extract data from excel is using DDT

    can use log message to log entry.

     

    If you are going to use automation testing then you have to get to know basic programming concepts.

    It's not rocket science. I know ppl from different back grounds started manual testing, then learned automation. 

     

    • tristaanogre's avatar
      tristaanogre
      Esteemed Contributor

      Marsha_R's answer is the best answer... it's not writing code per se where you are writing a function or routine, but to do what you want, you will need to write a code expression.  That's the only way to concatenate strings into a single parameter for the Log.Message operation.

       

      And, as NisHera suggests... Automated testing IS programming... it is software development.  You are developing software that tests other software.  So, in truth, to be an test automation engineer, you need to have skill sets from both disciplines.  For that matter, even a good manual tester, to truly know what the various scenarios are that need tested, should have a basic understanding of how code is written.

       

      I'd highly recommend starting with a free tutorial... plenty available online.  One for JavaScript can be found at http://www.w3schools.com/js/.