我正在评估一些测试自动化框架,并希望得到一些意见.我们有一个大型的信用处理业务应用程序,它有三个端点:web ui,soap和基本的http/post.我的要求如下.
我们的QA非常习惯于数据驱动的测试(所有输入数据都来自excel,因此断言的预期结果也是如此).基本上,Excel工作表中的每一行都包含输入数据和相应的预期结果.我们希望我们的质量检查只需编辑Excel工作表.我们的开发团队将负责提供必要的测试库/夹具.鉴于上述情况,我想使用1个单独的自动化框架,可以读取这些excel表并测试我的应用程序的所有端点,即web ui,soap和http/post.请告诉我哪个测试自动化框架符合我的需求.感谢一些指导和教程让我开始.
我想在Robot Framework中运行测试.
我还想为机器人框架测试提供以下类型的目录结构:
或类似的规定.但是,我不知道如何编写我的测试,以便他们可以访问我的库和资源文件.例如,如何从Tests\test_1.txt导入Libraries\Library.py.
什么是最好的方法来解决这个问题?
是否存在父目录中访问文件的语法?
我应该在每个测试文件中导入资源和库文件,还是有办法只执行一次?
在Robot Framework中,我们可以将列表分配给标量变量或列表变量,如下所示:
| @{list} = | Create List | a | b | c |
| ${scalar} = | Create List | a | b | c |
Run Code Online (Sandbox Code Playgroud)
列表变量和包含列表的标量变量之间有什么区别?
在我的机器人脚本中,在TEST Cases部分预设了总共10个测试用例.Test1是独立的,不需要一直运行; 一次执行就足够了.
请建议是否有关键字只会跳过testcase1.
但是,如果用户有兴趣运行包含的脚本testcase1,则用户必须在命令中指定类似的内容pybot <scriptname> "add testcase1".
testcase1
....
....
testcase2
....
....
testcase3
....
....
testcase10
....
....
Run Code Online (Sandbox Code Playgroud) 是否可以根据关键字的返回值初始化套件或测试设置中的变量?我尝试过这种语法,但它不起作用:
*** Settings ***
| Suite Setup | ${A variable}= | Set Variable | A String
Run Code Online (Sandbox Code Playgroud)
我知道我可以调用像"Set Suite Variable"这样的关键字,但是他们不允许我将变量设置为另一个关键字的结果.我在这个例子中使用了"Set Variable",但我希望能够在这里调用任何关键字.
现在,我设置路径变量
path : D:..;C:\Program Files\Google\Chrome\Application
Chrome : C:\Program Files\Google\Chrome\Application\chromedriver.exe
Run Code Online (Sandbox Code Playgroud)
我可以Chrome在命令行中调用open .
但运行时出错 RIDE
失败:WebDriverException:消息:未知错误:Chrome无法启动:崩溃(驱动程序信息:chromedriver = 2.13.307647(5a7d0541ebc58e69994a6fb2ed930f45261f3c29),platform = Windows NT 6.1 SP1 x86)
testing google-chrome path robotframework selenium-chromedriver
我有一个页面,可能包含也可能不包含将影响所有xpath的特定元素.
我需要运行"Run Keyword If"来识别这个元素是否存在,如果存在则执行另一个关键字.
我试图将"Page Should Contain Element"和"Element should Be Visible"设置为变量并将其传递给If语句,但它只返回None.
我可以用什么来识别页面中的元素?
我正在使用这个正则表达式^x{3}y{3}$检查例如这个字符串:xxxyyy,其中x's的数量与y's 的数量相同(在我的例子中3).但问题是,我不知道重复(它是在范围的数量0来10),所以3必须用抽象的东西来代替.
我可以使用^x*y*$或^x{0,10}y{0,10}$,但是当xs 的数量与s 的数量不同时,这将不起作用y.
我正在寻找类似的东西\1,用于重用匹配的组,但在我的情况下,我想重用组匹配的数量x.
使用Robot Framework,我正在尝试使用一个文件和三个包含文件的子目录来压缩目录.我正在使用ArchiveLibrary和关键字在目录中创建Zip From Files.结果是一个压缩目录,其中包含顶层目录中的一个文件和三个空子文件夹.
如何调整库以便包含子文件夹的内容?
这是关键字最初定义的方式:
def create_zip_from_files_in_directory(self, directory, filename):
''' Take all files in a directory and create a zip package from them
`directory` Path to the directory that holds our files
`filename` Path to our destination ZIP package.
'''
if not directory.endswith("/"):
directory = directory + "/"
zip = zipfile.ZipFile(filename, "w")
files = os.listdir(directory)
for name in files:
zip.write(directory + name, arcname=name)
zip.close()
Run Code Online (Sandbox Code Playgroud)
链接到完整的库.
我一直在尝试os.walk,没有成功.
如何在.robot文件中使用关键字:
Zip xml file
${zipfilename}= set variable komplett.zip
Create zip …Run Code Online (Sandbox Code Playgroud) 找不到Selenium这个元素:
<div class="import-file">
<input name="ctl00$MainContent$btnAttachment" type="button" id="MainContent_btnAttachment" class="button-norl img-upload-text b" value="???????">
<input type="file" name="ctl00$MainContent$fuAttachment" id="MainContent_fuAttachment" onchange="akUploadfile('[id$=fuAttachment]',$('[id$=hdnFileType1]').val());">
</div>
Run Code Online (Sandbox Code Playgroud)
我的机器人代码:
VA_M03_0108
[Tags] Carregis
Login.Input user name ${USER} ${PASS}
SendCar
Click Element id=ContentPlaceHolder1_rpt_search_lblCarReceiveDoc_0
Sleep 2s
Wait Until Element Is Visible id=UpdatePanel1 timeout=20s
Choose File id=MainContent_fuAttachment ${CURDIR}/???????.jpg
Run Code Online (Sandbox Code Playgroud)
机器人响应:
Element 'id=MainContent_fuAttachment' not visible after 20 seconds.
Run Code Online (Sandbox Code Playgroud)
有人,请帮帮我.这是UI:https://www.sendspace.com/file/kqerdt