selenium(鼠标操作、页面操作、用例设计)

ActionChains类(鼠标操作)

常用于模拟鼠标的行为,比如单击、双击、拖拽等行为

click(on_element=None) --- 鼠标单击

double_click(on_element=None) --- 双击

context_click(on_element=None) --- 右击

click_and_hold(on_element=None) --- 鼠标单击并且按住不放

drag_and_drop(source,target) --- 拖拽

drag_and_drop_by_offset(source,xoffset,yoffset) --- 将目标拖动到指定的位置

key_down(value,element=None) --- 按下某个键盘上的键

key_up(value,element=None) --- 松开某个键

move_by_offset(xoffset,yoffset) --- 鼠标从当前位置移动到某个坐标

move_to_element(to_element) --- 鼠标移动到某个元素

move_to_element_with_offset(to_element,xoffset,yoffset)

--- 移动到距某个元素(左上角坐标)多少距离的位置

perform() --- 执行链中的所有动作

release(on_element=None) --- 在某个元素位置松开鼠标左

案例:

复制代码
在京东首页,让光标悬停在“我的京东”上,随后点击“待处理订单”
from  selenium  import   webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.jd.com/")
dx.maximize_window()
sleep(1)
wdjd=dx.find_element_by_xpath('//*[@id="ttbar-myjd"]/div[1]/a')#根据xpath寻找到“我的京东”
ActionChains(dx).move_to_element(wdjd).perform()#将光标悬停在“我的京东”上并点击
sleep(1)
dx.find_element_by_xpath('//*[@id="ttbar-myjd"]/div[2]/div[1]/div[1]/div[1]/a').click()

text 获取文本

(1)text 获取文本

复制代码
from  selenium.webdriver.common.action_chains import  ActionChains
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.maximize_window()
time.sleep(2)
sz=dx.find_element_by_id("s-usersetting-top").text

(2)if 判断文本是否正常

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.common.action_chains import  ActionChains
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.maximize_window()
time.sleep(2)
sz=dx.find_element_by_id("s-usersetting-top").text
print(sz)
if  sz=="设置":
    print("ok")
else:
    print("no")

title 标题

(1)重开窗口的标题都在第一个页面上

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title)
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title)
time.sleep(2)
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title)

(2)通过get 打开网页,覆盖的,标题就是打开的页面

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
dx.get("https://www.baidu.com")
print(dx.title) #百度一下,你就知道
time.sleep(2)
dx.get("https://www.jd.com")
print(dx.title) #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!

assert 断言

assert判断:正确的通过,执行下一步,失败就报错

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
js=dx.title
assert  js=="过期更新"
print("ok")

切换窗口

(1)当页面出现两个窗口,可以根据索引切换,索引位0,1

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title) #过期更新
jb=dx.current_window_handle  #获取当前句柄
print(jb) #CDwindow-B8A77F2921EDAA393A1436B9980D8CCB
jbs=dx.window_handles #获取所有句柄,返回一个列表
print(jbs) #['CDwindow-B8A77F2921EDAA393A1436B9980D8CCB', 'CDwindow-C9672C1FE1CB891043BF910930A4F819']
dx.switch_to.window(jbs[1]) #两个窗口索引 0,1
time.sleep(2)
dx.find_element_by_id("kw").send_keys(" 切换")

(2)当页面出现三个窗口,可以根据索引切换,索引位0,2,1

案例1:切换最后的页面

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title) #过期更新
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title) #过期更新
jb=dx.current_window_handle  #获取当前句柄
print(jb) #CDwindow-B8A77F2921EDAA393A1436B9980D8CCB
jbs=dx.window_handles #获取所有句柄,返回一个列表
print(jbs) #['CDwindow-B8A77F2921EDAA393A1436B9980D8CCB', 'CDwindow-C9672C1FE1CB891043BF910930A4F819']
dx.switch_to.window(jbs[1]) #两个窗口索引 0,1
time.sleep(2)
dx.find_element_by_id("kw").send_keys(" 切换")

案例2:

切换中间的窗口

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title) #过期更新
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title) #过期更新
jb=dx.current_window_handle  #获取当前句柄
print(jb) #CDwindow-B8A77F2921EDAA393A1436B9980D8CCB
jbs=dx.window_handles #获取所有句柄,返回一个列表
print(jbs) #['CDwindow-B8A77F2921EDAA393A1436B9980D8CCB', 'CDwindow-C9672C1FE1CB891043BF910930A4F819']
dx.switch_to.window(jbs[2]) #两个窗口索引 0,1
time.sleep(2)
dx.find_element_by_link_text("免费注册").click()

(3).通过for ,判断title 切换窗口

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title) #过期更新
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title) #过期更新
jb=dx.current_window_handle  #获取当前句柄
print(jb) #CDwindow-B8A77F2921EDAA393A1436B9980D8CCB
jbs=dx.window_handles #获取所有句柄,返回一个列表
print(jbs) #['CDwindow-B8A77F2921EDAA393A1436B9980D8CCB', 'CDwindow-C9672C1FE1CB891043BF910930A4F819']
for i  in jbs:
    dx.switch_to.window(i)
    if  "百度一下,你就知道" in dx.title:
        break
print(dx.title)
dx.find_element_by_id("kw").send_keys("切换成功")

select 下拉框讲解

(1)下拉框案例

案例:

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.support.select import  Select
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/select.html") #通过get打开页面
time.sleep(2)
wz=dx.find_element_by_id("dropdown")
# Select(wz).select_by_index(2) #通过索引来选择
# Select(wz).select_by_value("option2")  #通过value来选择
Select(wz).select_by_visible_text("绍兴") # 通过text 文本来选择

alert弹框

链接:

file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html代码:

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.support.select import  Select
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html") #通过get打开页面
time.sleep(2)
tk=dx.switch_to.alert #切换到框内
tk.dismiss() #   取消
time.sleep(2)
tk.accept()  #确认

确认性弹框

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.support.select import  Select
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/enter.html")
time.sleep(2)
dx.find_element_by_class_name("alert").click() #点击确认按钮
time.sleep(2)
tk=dx.switch_to.alert #切换到框内
time.sleep(2)
tk.accept()  #确认

输入性

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/prompt.html")
time.sleep(2)
dx.find_element_by_class_name("alert").click() #点击确认按钮
time.sleep(2)
tk=dx.switch_to.alert #切换到框内
tk.send_keys("dcs") #输入内容
time.sleep(2)
tk.accept()  #确认

上传文件类型

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/upload_file.html")
time.sleep(2)
dx.find_element_by_id("file").send_keys(r"E:\az\ls\tttt.txt")

frame框京东的页面:

京东链接地址:

https://graph.qq.com/oauth2.0/show?which=Login\&display=pc\&response_type=code\&state=F0BE062356EAD84676C4CD60B26E2A8877AF3617BC5D527476899F1F50B0C789A2FD39C9BBE8F6311FFDA89EA89F9581\&client_id=100273020\&redirect_uri=https%3A%2F%2Fqq.jd.com%2Fnew%2Fqq%2Fcallback.action%3Fuuid%3D7831301c1cb641c6b81b35537bb966f7网易邮箱

链接:https://smart.mail.163.com/login.htm?df=smart_android\&utm_source=email_mobile

代码:

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://graph.qq.com/oauth2.0/show?which=Login&display=pc&response_type=code&state=F0BE062356EAD84676C4CD60B26E2A8877AF3617BC5D527476899F1F50B0C789A2FD39C9BBE8F6311FFDA89EA89F9581&client_id=100273020&redirect_uri=https%3A%2F%2Fqq.jd.com%2Fnew%2Fqq%2Fcallback.action%3Fuuid%3D7831301c1cb641c6b81b35537bb966f7")
time.sleep(2)
wz=dx.find_element_by_id("ptlogin_iframe")
dx.switch_to.frame(wz)
time.sleep(2)
dx.find_element_by_link_text("密码登录").click()
time.sleep(2)
dx.switch_to.default_content() #退出框
time.sleep(2)
dx.find_element_by_link_text("服务协议").click()

滚动条

复制代码
'window.scrollTo(0,2000)' 

案例1:

from selenium import webdriver #导入selenium模块中的webdriver

from selenium.webdriver.support.select import Select

import time

dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象

dx.get("https://www.jd.com") #通过get打开页面

time.sleep(2)

js1='window.scrollTo(0,2000)' #0表示开始顶端 0,2000

dx.execute_script(js1)

time.sleep(2)

js2='window.scrollTo(0,0)' #0表示开始顶端

dx.execute_script(js2)

案例2:

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.support.select import  Select
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.jd.com") #通过get打开页面
time.sleep(2)
js='var d=document.documentElement.scrollTop=2000'
dx.execute_script(js)
time.sleep(2)
js1='var d=document.documentElement.scrollTop=0'
dx.execute_script(js1)

案例3:滑动条进行循环加载

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.support.select import  Select
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.jd.com") #通过get打开页面
time.sleep(2)
dx.maximize_window()
n=0
while n<=5000:
    n+=1000
    js='var d=document.documentElement.scrollTop='+str(n)
    dx.execute_script(js)
    time.sleep(2)
复制代码

keys类(内容:复制,黏贴,剪切,全选,确认)

导入一个keys类

案例1

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.common.keys import Keys
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.find_element_by_id("kw").send_keys("dcs") #输入
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"a") #全选
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"x") #剪切
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"v") #剪切
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.ENTER) # 确认

案例2

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  selenium.webdriver.common.keys import Keys
import  time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
def  hs(wz,*dz):
    dx.find_element_by_id(wz).send_keys(dz)
    time.sleep(2)
if __name__ == '__main__':
    hs("kw","dcs")
    hs("kw", Keys.CONTROL,"a")
    hs("kw", Keys.CONTROL, "x")
    hs("kw", Keys.CONTROL, "v")
    hs("kw", Keys.ENTER)

根据场景设计场景用例

1 .一条一条的自动化用例编写

(1)登录场景

(2)登录==用户管理

(3)登录==系统管理

(4)登录==退出

案例:

登录场景1

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()

案例2:登录==用户管理

复制代码
#登录==用户管理
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()
sleep(2)
# 点击用户管理
dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()

案例3:登录==系统管理

复制代码
#登录==系统管理
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()
sleep(2)
# 点击系统管理
dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()

案例4:

复制代码
#登录==退出
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
#输入账号
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
# 输入密码
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
#点击登录
dx.find_element_by_id('loginBtn').click()
sleep(2)
#退出
dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()

封装用例(将用例放在每一个函数中)

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
class  Cms(object):
    def __init__(self):
        pass
    def dl(self):
        dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
        dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
        sleep(2)
        #输入账号
        dx.find_element_by_id("userAccount").send_keys("admin")
        sleep(2)
        # 输入密码
        dx.find_element_by_id("loginPwd").send_keys("123456")
        sleep(2)
        #点击登录
        dx.find_element_by_id('loginBtn').click()
    def  yhgl(self):
        dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
        dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
        sleep(2)
        #输入账号
        dx.find_element_by_id("userAccount").send_keys("admin")
        sleep(2)
        # 输入密码
        dx.find_element_by_id("loginPwd").send_keys("123456")
        sleep(2)
        #点击登录
        dx.find_element_by_id('loginBtn').click()
        sleep(2)
        # 点击用户管理
        dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()
    def  xtgl(self):
        dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
        dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
        sleep(2)
        #输入账号
        dx.find_element_by_id("userAccount").send_keys("admin")
        sleep(2)
        # 输入密码
        dx.find_element_by_id("loginPwd").send_keys("123456")
        sleep(2)
        #点击登录
        dx.find_element_by_id('loginBtn').click()
        sleep(2)
        # 点击系统管理
        dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()
    def  quit(self):
        dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
        dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
        sleep(2)
        #输入账号
        dx.find_element_by_id("userAccount").send_keys("admin")
        sleep(2)
        # 输入密码
        dx.find_element_by_id("loginPwd").send_keys("123456")
        sleep(2)
        #点击登录
        dx.find_element_by_id('loginBtn').click()
        sleep(2)
        #退出
        dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()

if __name__ == '__main__':
    ldx=Cms()
    # ldx.dl()
    # ldx.yhgl()
    # ldx.quit()
    ldx.xtgl()

优化用例

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
class  Cms(object):
    def __init__(self):
        pass
    def dl(self):
        self.dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
        self.dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
        sleep(2)
        #输入账号
        self.dx.find_element_by_id("userAccount").send_keys("admin")
        sleep(2)
        # 输入密码
        self.dx.find_element_by_id("loginPwd").send_keys("123456")
        sleep(2)
        #点击登录
        self.dx.find_element_by_id('loginBtn').click()
    def  yhgl(self):
        self.dl() #调用登录
        sleep(2)
        # 点击用户管理
        self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()
    def  xtgl(self):
        self.dl()
        # 点击系统管理
        sleep(2)
        self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()
    def  quit(self):
        self.dl()
        #退出
        sleep(2)
        self.dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()
if __name__ == '__main__':
    ldx=Cms()
    # ldx.dl()
    # ldx.yhgl()
    ldx.quit()
    # ldx.xtgl()

将登录写在构造函数中

复制代码
from  selenium  import   webdriver #导入selenium模块中的webdriver
from  time  import   *
class  Cms(object):
    def __init__(self):
        self.dx = webdriver.Chrome()  # 创建一个驱动谷歌浏览器的对象
        self.dx.get("http://49.233.201.254:8080/cms/manage/login.do")  # 通过get打开页面
        sleep(2)
        #输入账号
        self.dx.find_element_by_id("userAccount").send_keys("admin")
        sleep(2)
        # 输入密码
        self.dx.find_element_by_id("loginPwd").send_keys("123456")
        sleep(2)
        #点击登录
        self.dx.find_element_by_id('loginBtn').click()
    def  yhgl(self):
        sleep(2)
        # 点击用户管理
        self.dx.find_element_by_xpath('//*[@id="menu-user"]/dt/i').click()
    def  xtgl(self):
        # 点击系统管理
        sleep(2)
        self.dx.find_element_by_xpath('//*[@id="menu-system"]/dt/i').click()
    def  quit(self):
        #退出
        sleep(2)
        self.dx.find_element_by_xpath("/html/body/header/span[2]/a/i").click()
if __name__ == '__main__':
    ldx=Cms()
    # ldx.yhgl()
    # ldx.quit()
    ldx.xtgl()
相关推荐
守城小轩3 小时前
在Selenium 中更改 User-Agent 的步骤与最佳实践
chrome·selenium·自动化·网络爬虫·浏览器开发·浏览器爬虫
测试杂货铺13 小时前
Postman核心功能详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
程序员杰哥17 小时前
python+requests实现的接口自动化测试
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
测试渣17 小时前
Postman高级功能深度解析:Mock Server与自动化监控——构建高效API测试与监控体系
测试工具·postman
互联网杂货铺18 小时前
当了5年牛马,我开始划水了。。。
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
一只天蝎的晋升之路1 天前
练习利用Jupyter使用selenium【疑问未解决版】
ide·selenium·jupyter
向日葵.1 天前
WireShark与rtps协议组合使用
网络·测试工具·wireshark
测试杂货铺1 天前
软件测试之测试覆盖率
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·测试覆盖率
CatalyzeSec1 天前
Wireshark进阶技巧:通过DNS查询来分析可疑流量中恶意软件感染事件
测试工具·web安全·网络安全·wireshark