先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
“args”: [],
“extensions”: []
}
}
}
我们可以尝试使用python requests 向 ChromeDriver发送请求
import requests
import json
session_url = ‘http://localhost:9515/session’
session_pars = {“capabilities”: {“firstMatch”: [{}], \
“alwaysMatch”: {“browserName”: “chrome”,\
“platformName”: “any”, \
“goog:chromeOptions”: {“extensions”: [], “args”: []}}}, \
“desiredCapabilities”: {“browserName”: “chrome”, \
“version”: “”, “platform”: “ANY”, “goog:chromeOptions”: {“extensions”: [], “args”: []}}}
r_session = requests.post(session_url,json=session_pars)
print(json.dumps(r_session.json(),indent=2))
结果:
{
“sessionId”: “44fdb7b1b048a76c0f625545b0d2567b”,
“status”: 0,
“value”: {
“acceptInsecureCerts”: false,
“acceptSslCerts”: false,
“applicationCacheEnabled”: false,
“browserConnectionEnabled”: false,
“browserName”: “chrome”,
“chrome”: {
“chromedriverVersion”: “2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363)”,
“userDataDir”: “/var/folders/yd/dmwmz84x5rj354qkz9rwwzbc0000gn/T/.org.chromium.Chromium.RzlABs”
},
“cssSelectorsEnabled”: true,
“databaseEnabled”: false,
“handlesAlerts”: true,
“hasTouchScreen”: false,
“javascriptEnabled”: true,
“locationContextEnabled”: true,
“mobileEmulationEnabled”: false,
“nativeEvents”: true,
“networkConnectionEnabled”: false,
“pageLoadStrategy”: “normal”,
“platform”: “Mac OS X”,
“rotatable”: false,
“setWindowRect”: true,
“takesHeapSnapshot”: true,
“takesScreenshot”: true,
“unexpectedAlertBehaviour”: “”,
“version”: “71.0.3578.80”,
“webStorageEnabled”: true
}
}
如何打开一个网页,类似driver.get(url)
那么构造的请求是:
请求方式 :POST
请求地址 :http://localhost:9515/session/:sessionId/url
注意:上述地址中的 “:sessionId”
要用启动浏览器的请求返回结果中的sessionId的值
例如:我刚刚发送请求,启动浏览器,返回结果中"sessionId": “44fdb7b1b048a76c0f625545b0d2567b”
然后请求的URL地址
请求地址:http://localhost:9515/session/b2801b5dc58b15e76d0d3295b04d295c/url
请求body :{“url”: “https://www.baidu.com”, “sessionId”: “44fdb7b1b048a76c0f625545b0d2567b”}
即:
import requests
url = ‘http://localhost:9515/session/44fdb7b1b048a76c0f625545b0d2567b/url’
pars = {“url”: “https://www.baidu.com”, “sessionId”: “44fdb7b1b048a76c0f625545b0d2567b”}
r = requests.post(url,json=pars)
print(r.json())
如何定位元素,类似driver.finde_element_by_xx:
请求方式 :POST
请求地址 :http://localhost:9515/session/:sessionId/element
注意:上述地址中的 “:sessionId”
要用启动浏览器的请求返回结果中的sessionId的值。
例如:我刚刚发送请求,启动浏览器,返回结果中"sessionId": “b2801b5dc58b15e76d0d3295b04d295c”
然后我构造 查找页面元素的请求地址
请求地址:http://localhost:9515/session/b2801b5dc58b15e76d0d3295b04d295c/element
请求body :{“using”: “css selector”, “value”: “.postTitle a”, “sessionId”: “b2801b5dc58b15e76d0d3295b04d295c”}
即:
import requests
url = ‘http://localhost:9515/session/b2801b5dc58b15e76d0d3295b04d295c/element’
pars = {“using”: “css selector”, “value”: “.postTitle a”, “sessionId”: “b2801b5dc58b15e76d0d3295b04d295c”}
r = requests.post(url,json=pars)
print(r.json())
如何操作元素:类似click()
请求方式 :POST
请求地址 :http://localhost:9515/session/:sessionId/element/:id/click
注意:上述地址中的 “:sessionId”
要用启动浏览器的请求返回结果中的sessionId的值
:id 要用元素定位请求后返回ELEMENT的值
例如:我刚刚发送请求,启动浏览器,返回结果中"sessionId": “b2801b5dc58b15e76d0d3295b04d295c”
元素定位,返回ELEMENT的值"0.11402119390850629-1"
然后我构造 点击页面元素的请求地址
请求地址:http://localhost:9515/session/b2801b5dc58b15e76d0d3295b04d295c/element/0.11402119390850629-1/click
请求body :{“id”: “0.11402119390850629-1”, “sessionId”: “b2801b5dc58b15e76d0d3295b04d295c”}
即:
import requests
url = ‘http://localhost:9515/session/b2801b5dc58b15e76d0d3295b04d295c/element/0.11402119390850629-1/click’
pars ={“id”: “0.5930642995574296-1”, “sessionId”: “b2801b5dc58b15e76d0d3295b04d295c”}
r = requests.post(url,json=pars)
print(r.json())
从上面可以看出来,UI自动化,其实也可以写成API自动化。
只是,只是
好繁琐,没有封装好的wedriver指令好用,有点脱裤子放屁的感觉。
我们来写段代码感觉一下:
import requests
import time
capabilities = {
“capabilities”: {
“alwaysMatch”: {
“browserName”: “chrome”
},
“firstMatch”: [
{}
]
},
“desiredCapabilities”: {
“platform”: “ANY”,
“browserName”: “chrome”,
“version”: “”,
“chromeOptions”: {
“args”: [],
“extensions”: []
}
}
}
打开浏览器 http://127.0.0.1:9515/session
res = requests.post(‘http://127.0.0.1:9515/session’, json=capabilities).json()
session_id = res[‘sessionId’]
打开百度
requests.post(‘http://127.0.0.1:9515/session/%s/url’ % session_id,
json={“url”: “http://www.baidu.com”, “sessionId”: session_id})
time.sleep(3)
关闭浏览器,删除session
requests.delete(‘http://127.0.0.1:9515/session/%s’ % session_id, json={“sessionId”: session_id})
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
s.delete(‘http://127.0.0.1:9515/session/%s’ % session_id, json={“sessionId”: session_id})
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-pE8yVKmx-1713412001904)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!