宁夏省建设厅网站,培训机构前端,怎么做才能让网站快速收录,wordpress禁止谷歌字体1、问题
当我们描述一个“好的自动化测试用例”时#xff0c;经常出现标准是#xff1a;
精确
自动化测试用例应该测试一件事#xff0c;只有一件事。与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败。
独立
自动化测试用例不应该受测试套件中任何其他…1、问题
当我们描述一个“好的自动化测试用例”时经常出现标准是
精确
自动化测试用例应该测试一件事只有一件事。与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败。
独立
自动化测试用例不应该受测试套件中任何其他测试用例影响。
快速
这不需要太多的解释。自动化测试用例套件运行得越快它就越有用。
这些标准在Selenium测试套件中可能特别具有挑战性。原因在于Selenium的UI自动化测试通常涉及可能包括注册登录某些导航表单提交或与网站的其他交互的设置。只有在做完这些事情之后你才可以在网站的某些方面做出断言。但是这样就会引入一些和原本的测试用例无关的错误导致自动化脚本运行失败。
2、解决方法
现在很多新的网站的后端都采用REST API。如果能够在脚本中通过访问REST API来完成一些基础的必要操作而不是在UI上这样将提高我们测试的执行效率。
REST API基于HTTP协议这是基本上支持整个互联网的协议。几乎所有现代编程语言都有可用于发出HTTP请求的库因此我们可以将调用REST API的支持添加到几乎任何测试套件中。
3、实例
很多测试中都会遇到新建账号的问题。需要测试新的账号在登陆之后的行为。如果能够使用REST API来新建用户的话就可以大大的节省填写新建账号的表单的时间。
这里假设一个虚拟的REST API
POST http://api.myfakeapp.com/v1/create-user通过POST方法可以新建用户。Body里面需要填充的JSON数据如下
{username: example-username,password: abcd1234,email: bobexample.com,first_name: bob,last_name: example
}下面是代码实现
require rest-clientrequire jsonrequire securerandomclass RestApiInterfaceheaders {content-type application/json,user-agent Rest Api Helper,}def post_to_api url, post_body_objjson_body JSON.generate(post_body_obj)response RestClient.post url, json_body, headersenddef create_test_user# Step 1: Build the user parameters randomlyrandom_test_user {username random_string,password random_string,email #{random_string}testing.com,first_name test,last_name user,}# Step 2: Execute the API callresponse post_to_api http://api.myfakeapp.com/v1/create-user, random_test_user # Step 3: Ensure the api call returned a success codeif response.code ! 200raise User creation failedend# Final Step: Return the user object so we can use itresponse.body[user][data]enddef random_string# This is an easy way to get a good randomized stringSecureRandom.hex endend$driver Selenium::WebDriver.for :firefoxuser RestApiInterface.new.create_test_user$driver.get http://myfakeapp.com$driver.find_element(:css, input[nameusername]).send_keys user[username]$driver.find_element(:css, input[namepassword]).send_keys user[password]$driver.find_element(:css, button[namelogin]).click
puts $driver.find_element(:css, #user_id).text4、总结
这里只是给出了一个如何把API访问和UI自动化结合的思路。在这个思路的引导下可以对UI自动化测试进行很多扩展例如校验界面数据元素的数据和API中数据的一致性等等。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你