問題:
用robotframework-ride編寫金額斷言時,獲取的金額數據存在千分位分隔符“,”,但是對比數據不存在“,”,而且帶千分位分隔符的金額(實際上是字符串)無法轉化為數字進行比較。
解決方案:
想辦法將帶有千分位分隔符的金額中的“,”去掉,這樣我們就獲得了一個完整的系統可識別的數字。通過關鍵字should be equal as numbers 就可以成功驗證通過了。通過查閱資料,可以利用robotframework的標准庫String來實現需求。話不多說,放上標准庫的官方文檔http://robotframework.org/robotframework/latest/libraries/String.html
步驟用法:
1、robotframework內置String標准庫,無需做其他安裝操作,在測試套集中直接引入即可。鼠標點擊選擇一個測試套集(testsuite),右側Add Import 點擊Library,彈窗在Name輸入框中輸入String,點擊確定。導入String標准庫,如果列表展示為黑色表示導入成功,如果為紅色表示導入失敗,需要檢查你輸入是否正確,或者檢查robotframework是否為最新版。一般都可以成功引入的。
2、我主要使用的是Remove String關鍵字,這里也主要就他的使用方法做詳細描述。
格式:${存放截取后字符串的變量} Remove String ${存放截取前的字符串的變量} 想要去掉的字符
(如果想要去掉多個連續字符,填寫在一個格里即可;如果想要去掉多個不連續的字符,則需要填到另一個格里)
3、操作結束后,可以用log打印出變量的值,可以看到想要的結果,由此解決了困擾我半天的問題。
截取String庫官方文檔內容
Introduction
A test library for string manipulation and verification.String
is Robot Framework's standard library for manipulating strings
Following keywords from BuiltIn
library can also be used with strings:
- Catenate
- Get Length
- Length Should Be
- Should (Not) Be Empty
- Should (Not) Be Equal (As Strings/Integers/Numbers)
- Should (Not) Match (Regexp)
- Should (Not) Contain
- Should (Not) Start With
- Should (Not) End With
- Convert To String
- Convert To Bytes
Altogether 30 keywords.
Keyword | Arguments | Documentation | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Convert To Lowercase | string | Converts string to lowercase. Examples:
New in Robot Framework 2.8.6. |
||||||||||||||||||||||||||||||
Convert To Uppercase | string | Converts string to uppercase. Examples:
New in Robot Framework 2.8.6. |
||||||||||||||||||||||||||||||
Decode Bytes To String | bytes, encoding,errors=strict | Decodes the given
Examples:
Use Encode String To Bytes if you need to convert Unicode strings to byte strings, and Convert To String in |
||||||||||||||||||||||||||||||
Encode String To Bytes | string, encoding,errors=strict | Encodes the given Unicode
Examples:
Use Convert To Bytes in |
||||||||||||||||||||||||||||||
Fetch From Left | string, marker | Returns contents of the If the See also Fetch From Right, Split String and Split String From Right. |
||||||||||||||||||||||||||||||
Fetch From Right | string, marker | Returns contents of the If the See also Fetch From Left, Split String and Split String From Right. |
||||||||||||||||||||||||||||||
Generate Random String | length=8, chars=[LETTERS][NUMBERS] | Generates(生成) a string with a desired(期望) The population sequence
Examples: log: 20170719 11:20:59.200 : INFO : ${ret} = bjgo5Rz7 |
||||||||||||||||||||||||||||||
Get Line | string, line_number | Returns the specified line from the given Line numbering starts from 0 and it is possible to use negative indices(負數) to refer to lines from the end. The line is returned without the newline character. Examples:
Use Split To Lines if all lines are needed. |
||||||||||||||||||||||||||||||
Get Line Count | string | Returns and logs the number of lines in the given string. |
||||||||||||||||||||||||||||||
Get Lines Containing String | string, pattern,case_insensitive=False | Returns lines of the given The The match is case-sensitive by default, but giving Lines are returned as one string catenated back together with newlines. Possible trailing newline is never returned. The number of matching lines is automatically logged. Examples:
See Get Lines Matching Pattern and Get Lines Matching Regexp if you need more complex pattern matching. |
||||||||||||||||||||||||||||||
Get Lines Matching Pattern | string, pattern,case_insensitive=False | Returns lines of the given The
A line matches only if it matches the The match is case-sensitive by default, but giving Lines are returned as one string catenated back together with newlines. Possible trailing newline is never returned. The number of matching lines is automatically logged. Examples:
See Get Lines Matching Regexp if you need more complex patterns and Get Lines Containing String if searching literal strings is enough. |
||||||||||||||||||||||||||||||
Get Lines Matching Regexp | string, pattern,partial_match=False | Returns lines of the given See BuiltIn.Should Match Regexp for more information about Python regular expression syntax in general and how to use it in Robot Framework test data in particular. By default lines match only if they match the pattern fully, but partial matching can be enabled by giving the If the pattern is empty, it matches only empty lines by default. When partial matching is enabled, empty pattern matches all lines. Notice that to make the match case-insensitive, you need to prefix the pattern with case-insensitive flag Lines are returned as one string concatenated back together with newlines. Possible trailing newline is never returned. The number of matching lines is automatically logged. Examples:
See Get Lines Matching Pattern and Get Lines Containing String if you do not need full regular expression powers (and complexity).
|
||||||||||||||||||||||||||||||
Get Regexp Matches | string, pattern,*groups | Returns a list of all non-overlapping matches in the given string.
If no groups are used, the returned list contains full matches. If one group is used, the list contains only contents of that group. If multiple groups are used, the list contains tuples that contain individual group contents. All groups can be given as indexes (starting from 1) and named groups also as names. Examples:
=> ${no match} = [] ${matches} = ['the', 'tri'] ${one group} = ['he', 'ri'] ${named group} = ['he', 'ri'] ${two groups} = [('h', 'e'), ('r', 'i')] New in Robot Framework 2.9. |
||||||||||||||||||||||||||||||
Get Substring | string, start,end=None | Returns a substring from The Examples:
|
||||||||||||||||||||||||||||||
Remove String | string, *removables | Removes all
Use Remove String Using Regexp if more powerful pattern matching is needed. If only a certain number of matches should be removed, Replace String or Replace String Using Regexp can be used. A modified version of the string is returned and the original string is not altered. Examples:
New in Robot Framework 2.8.2. |
||||||||||||||||||||||||||||||
Remove String Using Regexp | string, *patterns | Removes This keyword is otherwise identical to Remove String, but the New in Robot Framework 2.8.2. |
||||||||||||||||||||||||||||||
Replace String | string, search_for,replace_with,count=-1 | Replaces
If the optional argument A modified version of the string is returned and the original string is not altered. Examples:
|
||||||||||||||||||||||||||||||
Replace String Using Regexp | string, pattern,replace_with,count=-1 | Replaces This keyword is otherwise identical to Replace String, but the If you need to just remove a string see Remove String Using Regexp. Examples:
|
||||||||||||||||||||||||||||||
Should Be Byte String | item, msg=None | Fails if the given Use Should Be Unicode String if you want to verify the The default error message can be overridden with the optional |
||||||||||||||||||||||||||||||
Should Be Lowercase | string, msg=None | Fails if the given For example, The default error message can be overridden with the optional See also Should Be Uppercase and Should Be Titlecase. |
||||||||||||||||||||||||||||||
Should Be String | item, msg=None | Fails if the given With Python 2, except with IronPython, this keyword passes regardless is the With Python 3 and IronPython, this keyword passes if the string is a Unicode string but fails if it is bytes. Notice that with both Python 3 and IronPython, The default error message can be overridden with the optional |
||||||||||||||||||||||||||||||
Should Be Titlecase | string, msg=None | Fails if given
For example, The default error message can be overridden with the optional See also Should Be Uppercase and Should Be Lowercase. |
||||||||||||||||||||||||||||||
Should Be Unicode String | item, msg=None | Fails if the given Use Should Be Byte String if you want to verify the The default error message can be overridden with the optional |
||||||||||||||||||||||||||||||
Should Be Uppercase | string, msg=None | Fails if the given For example, The default error message can be overridden with the optional See also Should Be Titlecase and Should Be Lowercase. |
||||||||||||||||||||||||||||||
Should Not Be String | item, msg=None | Fails if the given See Should Be String for more details about Unicode strings and byte strings. The default error message can be overridden with the optional |
||||||||||||||||||||||||||||||
Split String | string,separator=None,max_split=-1 | Splits the If a Split words are returned as a list. If the optional Examples:
See Split String From Right if you want to start splitting from right, and Fetch From Left and Fetch From Right if you only want to get first/last part of the string. |
||||||||||||||||||||||||||||||
Split String From Right | string,separator=None,max_split=-1 | Splits the Same as Split String, but splitting is started from right. This has an effect only when Examples:
|
||||||||||||||||||||||||||||||
Split String To Characters | string | Splits the given Example:
|
||||||||||||||||||||||||||||||
Split To Lines | string, start=0,end=None | Splits the given string to lines. It is possible to get only a selection of lines from Lines are returned without the newlines. The number of returned lines is automatically logged. Examples:
Use Get Line if you only need to get a single line. |
||||||||||||||||||||||||||||||
Strip String | string, mode=both,characters=None | Remove leading and/or trailing whitespaces from the given string.
If the optional Examples:
New in Robot Framework 3.0. |