当前位置: 首页 > news >正文

大型网站和小企业站优化思路/西安网站seo推广

大型网站和小企业站优化思路,西安网站seo推广,wordpress相册分类,建设六马路小学 网站1、自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化测…

1、自动化代码中,用到了哪些设计模式?
  • 单例设计模式

  • 工厂模式
  • PO设计模式
  • 数据驱动模式
  • 面向接口编程设计模式

2、什么是断言( Assert) ?

  • 断言Assert用于在代码中验证实际结果是不是符合预期结果,
  • 如果测试用例执行失败会抛出异常并提供断言日志

3、什么是web自动化测试

  • Web自动化测试是从UI (用户界面)层面进行的自动化测试,
  • 测试人员通过编程自动化程序(测试用例脚本)来打开浏览器测试网站的业务逻辑。

4、什么是Selenium?

  • Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试

5、写出Selenium中你最熟悉的接口或类

  • WebDriver、InternetExplorerDriver、 FirefoxDriver、 ChromeDriver、 WebElement、WebDriverWait、 By

6、元素定位类型有哪些?

  By类一共有8种元素定位方式,它们都是静态方法:

  • By.id():
  • By.name():
  • By.tagName():
  • By.className():
  • By.cssSelector():
  • By linkText():
  • By partialLinkText():
  • By.xpath():

7、Xpath是什么?

  • 它是查找web页面元素的一种方式,相当于元素在dom中间的一个路径,可以采用绝对路径和相对路径的方式进行定位
  • 它对于定义动态的页面元素有很大的帮助,同时也需要谨慎使用,因为如果页面结构发生变化,那么定位信息也可能需要变化。

8、findElement()和findElements(方法有什么区别

  • 两个都是查找页面元素的方法
  • findElement():查找一个页面元素,只会返回一个WebElement对象
  • findElements() :查找页面上所有符合匹配的元素,返回元素集合

9、登录按钮除了用click方法进行点击以外还有其他方式吗?

  • 还可以使用submit()方法,前提是input元素的type为submit

10、怎么提高Selenium脚本的执行速度

  • 优化等待时间:使用 WebDriverWait 智能等待来代替线程等待 sleep 和 隐式等待 implicityWait
  • 减少不必要的操作:如直接进入某页面代替经过一系列自动化操作进入某页面在服务器允许的情况下,使用多线程实现并发执行测试用例.

11、怎么对含有验证码的功能进行自动化测试的

  • 1) :图像识别,技术难度大,效果不佳,不推荐
  • 2) :屏蔽验证码,邀请开发处理,但在预生产环境或者生产环境不推荐
  • 3) :万能验证码,使用一个复杂的其他人无法猜到的验证码

12、怎么验证复选按钮是不是被选中

  • 可以使用元素的 isSelected() 方法,如果返回的是 true 则说明被选中,否则表明未被选中

13、如何处理alert弹窗?

  • 处理 alert 弹窗首先需要先跳转到 alert 上,然后在点击确定或者取消按钮,
  • Alert alert = driver.switchTo().alert(); //切换到alert
  • alert.accept0; //确定
  • alert.dismiss0; //取消

14、下拉菜单中如何去选择一个菜单项?

  • 如果下拉菜单是select标签,使用方法: selectByValue() 或者 selectByIndex() 或者 selectByVisibleText() 即可
  • 如果这个下拉菜单不是通过 select 标签创建,则直接通过 xpath 定位元素然后去点击选择

15、如何模拟浏览器的前进和后退、刷新操作

  • driver.navigate().back()://后退
  • driver. navigate().forward()://前进
  • driver.navigate0.efresh()://刷新

16、怎么获得当前页面的URL?

  • String url = driver.getCurrentUrl();

17、WebDriver的close()和quit(方法的区别是什么?

  • close()方法只是关闭当前正在操作的窗口
  • quit()是关闭了所有已经打开的窗口

18、你觉得自动化测试用哪些缺陷

  • 成本比较大,而成效可能并不高
  • 适合自动化测试的功能有限
  • 某些功能操作相对复杂,比如验证码
  • 维护成本高,一旦项目需求变更,自动化测试脚本和用例就需要改进

19、Web端功能自动化,如何实现(非input型上传)上传文件

  • 与windows窗口进行交互,可以使用 pywin32库 实现。

20、遇到<d1 class="inf-bar clearfix"> 这种class中间有空格的控件,如何通过class定位?

  • xpath定位:直接//d1 [@class="inf_bar clearfx"]
  • css定位: d1.inf_bar.clearfix

21、Selenium自动化,遇到 iframe 如何处理?

  • 使用switch_ to.frame 切换进 iframe 当中后 ,再去定位其中的元素并操作

22、Web端功能自动化中,如何切换句柄。

  • 先获取所有窗口句柄,然后使用 switch_ to.window() 切换到指定窗口

23、测试中遇到 readonly 属性的控件,需要如何处理?简述一下思路

  • 先修改关闭r eadonly 属性,然后再操作元素。

需求:给定一个只包含正整数且非空的数组,返回该数组中重复次数最多的前N个数字(返回结果按重复次数从多到少降序), 请用熟悉的语言实现该需求。10分钟内写出来

a = [1, 6, 7, 4, 4, 5, 4, 5, 4, 5, 5, 6, 7, 8, 5, 6, 7, 3, 4, 2, 2, 1, 4, 8, 9, 4, 5, 6]def get_datas(a):result = []data_dict = {}# 键值对:键:数字,值:在列表中的次数for item in set(a):data_dict[str(item)] = a.count(item)print(data_dict)# 将键值对按值(数字出现的次数)排序 ---从高到低排序res = sorted(data_dict.values(),reverse=True)for num in res:for key,value in data_dict.items():# 如果值在列表中不存在,则添加到结果列表中if num == value and key not in result:result.append(key)return resulta1 = get_datas(a)

执行结果:

25、例如: passwd={"admin'":"123321","user1":" 123456"} 满足一下条件?

  • 1、设计一个登陆程序,不同的用户名和对应密码存在一一个字典里面,输入正确的用户和密码去登陆,
  • 2、首先输入用户名,如果用户名不存在或者为空,则一直提示输入正确的用户名
  • 3、 当用户名正确的时候,提示去输入密码,如果密码跟用户名不对应,则提示密码错误请重新输入。
  • 4、如果密码输入错误超过三次,中断程序运行。
  • 5、当输入密码错误时,提示还有几次机会
  • 6、用户名和密码都输入成功的时候, 提示登陆成功!

users = {"admin": "123456", "user1": " 123456"}
count = 0def login():global countusername = input("请输入用户名:")if username == None or username == "":login()if username not in users.keys():print("用户名输入不正确,请重新输入用户名:")login()while (count < 3):passwd = input("请输入密码:")if passwd == users[username]:print("登录成功!!")count = 3else:count += 1print("密码输入错误,您还有{0}次机会。".format(3 - count))login()

26、编写一个程序:---没弄懂

1、能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件;

2、并打印出相对路径。

import ospaths = []def get_paths(dir, relate_dir=None, search_str=None):global pathsif search_str == None:return os.listdir(dir)for item in os.listdir(dir):if relate_dir == None:relate_dir == os.curdirif os.path.isfile(os.path.join(dir, item)):if item.find(search_str) != -1:paths.append(os.path.join(relate_dir, item))elif os.path.isdir(os.path.join(dir, item)):paths = get_paths(os.path.join(dir, item), os.path.join(relate_dir, item), search_str)return pathsdir = os.getcwd()
search_str = "fun"
print(get_paths(dir, search_str=search_str))

27、请写出下列代码的运行结果

def f(str1, *args, **kwargs):print(str1, args, kwargs)l = [1, 2, 3]
t = [4, 5, 6]
d = {"a": 7, "b": 8, "c": 9}f(1, 2)
f(1, 2, 3, "python")
f("python", l, d)
f("python", *t)
f("python", *l, **d)
f("python", q="winning", **d)

执行结果:

1 (2,) {}
1 (2, 3, 'python') {}
python ([1, 2, 3], {'a': 7, 'b': 8, 'c': 9}) {}
python (4, 5, 6) {}
python (1, 2, 3) {'a': 7, 'b': 8, 'c': 9}
python () {'q': 'winning', 'a': 7, 'b': 8, 'c': 9}

28、请写下列代码的运行结果

import copya = [1, 2, 3, 4, ["a", "b"]]
b = a
c = copy.copy(a)
d = copy.copy(a)
a.append(5)
a[4].append("c")# 请根据以上规则填写一下输出内容
print('a=', b)
print('b=', b)
print('c=', c)
print('d=', d)

执行结果:

a= [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b= [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c= [1, 2, 3, 4, ['a', 'b', 'c']]
d= [1, 2, 3, 4, ['a', 'b', 'c']]

29、等长的两个列表合并到一个字典,要求:合并成{'A': 1, 'B': 2, 'C': 3},请用一行代码实现

keys = ["A", "B", "C"]
values = ["1", "2", "3"]
print(dict(zip(keys, [int(x) for x in values])))

30、合并两个列表并消除重复值

list_1 = ["a", "b", "c", "1", "A", "winning"]
list_2 = ["a", "python", "string"]
print(set(list_1 + list_2))
# 执行结果:{'c', 'winning', '1', 'string', 'b', 'a', 'python', 'A'}

31、已知一个列表,根据字典中的x ,由大到小排序这个列表

a = [{"x": 1, "y": 2}, {"x": 2, "y": 3}, {"x": 3, "y": 4}]
aa1 = sorted(a, key=lambda item: item["x"], reverse=True)
print(aa1)
# 执行结果:[{'x': 3, 'y': 4}, {'x': 2, 'y': 3}, {'x': 1, 'y': 2}]

32、Html的基本结构是怎么样的,如何绘制一个2X2的表格

<html>
<head>
<title>两行量列的表格</title>
-<head>
<body>
<tatle width="200" border="1">
<tr><td> </td>
<td> </td>
-</tr>
<td> </td>
<td> </td>
-</tr>
-</table>
-</body></html>

33、写出语句打印" let's go", she said

print("\"let's go\",she said")

34、请写一段代码,随机生成10个数并写入文件

import randomfs = open("num.txt", "a")
list1 = []
for index in range(10):num = random.randint(0, 10)list1.append(str(num))print(list1)
fs.write(",".join(list1))
fs.close()

执行结果:

35、请分别写出代码执行结果

a = 1def fun(a):a = 2fun(a)
print(a)
# 执行结果:1

===============

b = []def fun(b):b.append(1)fun(b)
print(b)执行结果:[1]

36、自动化测试分为哪几类:AB

  • A,UI自动化
  • B,接口自动化
  • C, Web自动化
  • D,终端自动化

37、什么是会话?

  • 所谓会话就是session ,而session是一种服务器的缓存技术,由服务器端创建,
  • 用户登录了系统,一般就会把登录用户的信息保存到这个session对象中,然后把此会话对应的id ( JSESSIONID )返回,
  • 因此大部分系统都会用到session机制来实现鉴权。Session保存数据方式也是以key-value的形式。

38、什么是token?

  • 所谓token其实就是服务器端返回的一个字符串(有点类似于: xys73494954sdhcdr83435这么一串),这个数据是基于什么算法生成的需要找开发确认,一般这个数据是唯一的,服务器每次返回的token都会不一样。

Token之所以可以用来做鉴权,原理如下:

  • 用户 a 调用了登录接口 ---》登录了系统b ---》服务器端生成了一个唯一的 token 信息(假设为c) ,
  • 然后会拿用户的编号id(假设为d)做了一个映射:c - d,
  • 然后将这样的映射关系存到数据库或 redis 等缓存中,
  • 然后再返回这个token给客户端 ---》客户端再调用其他需要鉴权的接口时,
  • 只需要将缓存起来的这个token带过去验证 --》服务器根据此token检查是否有登录用户信息来判断此请求是否是一个已登录授权的用户。( 这里客户端怎么取到这个token ,怎么存,再次请求时怎么带过去,上面接口鉴权部分已解释)。

39、你做接口自动化,项目用的是什么数据库,用什么来操作的这个数据库

  • Mysql ,可以通过jdbc来实现数据库的增删查改等操作。

40、你用过单元测试框架吗,是什么框架,有哪些常用注解

  • 用过, junit (不熟的话就可以不用说) , testng ,这些测试框架都支持我们去定义测试套件,达到管理我们测试用例代码的作用,同时这些测试框架提供的一些丰富注解不仅能很方便的控制测试用例的执行顺序来控制整个测试流程,还能为各种测试场景的实现提供支撑。

常用注解:

  • @Test ,用来标记测试方法
  • @BeforeSuite ,适合套件的全局初始化,在整个套件执行前先执行
  • @BeforeTest ,适合Test测试集的初始化,在测试集执行前先执行
  • @BeforeClass ,适合Class测试类的初始化,在测试类被调用时执行
  • @BeforeMethod ,适合测试方法执行前的初始化,在测试方法前先执行
  • @After... ,对比上面的来回答, 执行顺序跟上面的刚好相反,作用适合做一些回收资源。
  • @Parameters :参数化注解,方便实现参数化
  • @DataProvider :数据提供者,可以用来提供测试用的批量测试数据

41、说说你对接口的理解

  • 接口是服务,是功能点实现,是数据传递的通道,也是服务器端的一个实现了某种协议(比如http协议.. )和映射机制(当访问一个urlI时就会通过服务器端的映射处理机制解析后,落到对应的处理函数)的函数,接口参数就是函数的参数,接口的响应数据就是函数的返回值。

41、做过接口测试吗,有哪些熟悉的工具。

  • 做过(即时你之前没有用过可视化工具做过接口测试,但你现在学了接口自动化测试就算有经验了)。

熟悉的工具:

  • 可视化工具比如: jmeter,postman , soapui等(用过哪些说哪些)
  • 代码: httpclient发包技术来实现接口测试。

42、工具已经可以完成自动化测试了,为啥还要用到代码去完成? 

  • 工具做自动化测试依赖和局限性和强,有些工具提供了断言方法和表达式,但是上手成本高,而且已经提供的现有的断言表达式可能无法满足某些特殊规则的数据验证,而代码的话就相当灵活更多,断言方式可以随便按照自己的想法去设计。

43、请简单说一说get、post这 两种请求方法的区别?

Get :

  • a. 一般对于从服务器取数据的请求可以设置为get方式
  • b.Get方式在传递参数的时候,一般都会把参数直接拼接在url上(例如:http://xxx?id=1&type=2 )
  • c.Get请求方法可以传递的参数数据量是有限的(因为一般参数是拼接在url上,而浏览器对于url的长度是有限制的)
  • d.Get请求因为是直接将数据拼接在url上,所以安全性不如post强(相对) , 但是get的执行效率要快于post

Post :

  • a.一般往服务器提交数据的请求会设置为post方式
  • b.Post方式传递参数一般都会把参数放在请求体,而不会拼接在url
  • c.Post请求方法可以提交的数据量不受限制
  • d.Post请求传参相对于get要安全(相对不是绝对) , 但是post的执行效率不如get。

44、简述你所知道的延时等待方式

强制等待:

  • 也叫线程等待, 通过线程休眠的方式完成的等待,如等待5秒: Thread sleep(5000),

隐式等待:

  • 通过implicitly Wait完成的延时等待,注意这种是针对全局设置的等待,如设置超时时间为10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常

显式等待:

  • 也称为智能等待,针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元素则直接返回,如果在超时还没有找到元素,则抛出异常

45、输出结果是什么?

def f(x, l=[]):for i in range(x):l.append(i * i)print(l)
f(2)
f(3, [3, 2, 1])
f(3)结果:
[0]
[0, 1]
[3, 2, 1, 0]
[3, 2, 1, 0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0]
[0, 1, 0, 1]
[0, 1, 0, 1, 4]

46、你是怎么做接口自动化的?

  • 参考答案:会根据接口文档设计接口用例,然后利用 python 的 requests 库实现接口请求,利用excel来管理测试数据。并在代码当中利用 unittest 测试框架实现接口用例的断言处理。

47、如何用webdriver进行鼠标右键点击操作?

使用ActionChains类

ac= ActionChains(driver);

ac.context _click(元素对象).perform()

48、你在写自动化框架的时候,测试用例保存到哪里?用什么去读取?

  • 测试用例保存到Excel中,使用第三方库openpyxI完成对Excel的操作

49、用python写一段代码,计算1-1000以内能被7整除,除以5余3的整数,并按行打印

for i in range(1, 1000):if i % 7 == 0 and i % 5 ==3:print(i)执行结果:
28
63
98
133
168
........

50、小明有一百元,他想买一百本书,英语书5元一本,数学书3元一本,语文书0.5元一本,请问他有多少种买法。请编程解决这个问题,可以使用任何编程语言,包括伪语言。

根据题意是要买一百本书,一百块钱,看有多少种买法(钱不一定非要花完 ,只要能买到一百本书) :

三本书的价格分别为: 5,3,0.5,那么能买到最多的数学书为20本,英语书33本,语文书200本。但是也有组合的买法,所以可以通过一个三重for循环来实现, ijk分别代表购买数学,英语,语文书的数量,循环条件分别是i<=20,j<=33,k<=200,那么只要满足 i+j+k == 100,5*i+3*j+0.5*k<= 100即可。最后统计所有的组合就是买法的数量。

n = 0
for i in range(21):for j in range(34):for k in range(201):if 5 * i + 3 * j + k * 0.5 <= 100 and i + j + k == 100:n += 1
print(n)

51、使用monkey测试到了bug怎么提交的?

  • monkey对APP进行我们在测试的时候,会利用adb shell monkey-p包名-f脚本-V-V -v >D:log.txt把日志输出到本地,并且将出现错误时候的日志截图,把日志截图以及bug描述提交到禅道,指派给对应的开发。但是在提交bug之前会手动去重现下这个bug。

52、在一个HTML页面中想要创建超链接, 有哪种实现方法?

  • 超链接:<a href="网址”target=". blank">内容</a>
  • target="_ blank"为新窗口打开。
  • JS跳转链接:<a href="#" οnclick="javascript:location.href='网址";">内容</a>
  • meta 标签跳转链接:<meta http-equiv="refresh" content="3;URL =网址">
    • (数字3为秒)  

53、下面哪些关于自动化测试的说法是错误的: (ABCD )

A、自动化测试可以完全取代手工测试

B、自动化测试可以大幅度减少测试团队的工作量

C、性能测试不能自动化

D、自动化测试能够发现大量的新缺陷

Python中自定义的函数如何传递动态参数?

  • 参数使用*args或者*kwargs

55、什么是lambda函数?它有什么好处?

  • lambda函数:没有函数名称,是匿名函数。
  • 好处:只做简单运算,接收任何多参数并返回值,没有复杂的函数体。可以作为回调函数,传递给某些应用,比如消息处理.

56、Python语言中子类如何调用父类的构造函数?

  • 如果子类没有定义构造函数,则子类默认会调用父类的构造函数;
  • 如果子类定义了构造函数,那么在子类的构造函数中,调用父类的构造函数: python3中,使用super()._ _init_ _()

57、已知L = ["a", "b", "c", "d", "e", "f", "g"],则L[3]的值是_ L[::5]的值是__L[::2]值是_

L = ["a", "b", "c", "d", "e", "F", "g"]print(L[3])
print(L[::5])
print(L[::2])执行结果:
d
['a', 'F']
['a', 'c', 'e', 'g']

58、已知列表x=[1, 2],那么表达式 list(enumerate(x)) 的值

x = [1, 2]
a1 = list(enumerate(x))
print(a1)
# 执行结果:[(0, 1), (1, 2)]

59、查看变量类型的python内置函数是 type

60、查看变量内存地址的python函数是 id

61、表达式sum(range(1, 10, 2)) 的值为25

print(sum(range(1, 10, 2)))     # 各两位取一个之和:1,3,5,7,9
# 执行结果:25

62、Python的有序序列是:列表、元祖、字符

小飞飞买好多瓶子,每对瓶子上会有一个相同的数字。小飞飞数了一遍自己的瓶子发现瓶子的个数是奇数N ,也就是有-个没有配对的瓶子。现在小飞飞要去再拿一个新瓶子,请问他给新瓶子要标几号才能让所有瓶子都有配对的。比如说他有七个瓶子( N=7 ),那么标号可以是:1,6,13,1,6,13,13

那么新瓶子就要标记为13,加入后就有(1,1),(6,6),(13,13),(13,13 )这4对

输入:测试数据的第一行一个正整数 N (1<=N<=1000 )表示有N个数, N保证是奇数,第二行N个自然数,每个数都小于10^9

输出:输出一行一个整数,新瓶子的号码

样例:

  • 输入:
  • 9
  • 121233441
  • 输出:1

def func(n, data):if 0 <= n <= 1000 and n % 2 == 1 and len(data) == n:for i in data:if 0 < i < (10 ** 9):if data.count(i) % 2 != 0:return ielse:print("瓶子的号码值为自然数,并且小于10^9")else:print("传入的参数有误")res = func(7, [1, 6, 1, 6, 13, 13, 13])
print(res)

63、用python写一个函数,将一个字符串中给定的子串字符按从小到大的输出,第一个字符的位置为0

  • 如: myOrder( abejykhsesm',2,5)
  • 输出: ehjky

def my_order(s, start, len):# 先切片s = s[start:start + len]# 强制转换为列表li = list(s)# 排序li.sort()# 在拼接为字符串res = "".join(li)print("输出结果为:", res)my_order("abcedfgh", 2, 4)结果为:cdef

64、对输入的整数数组,输出数组元素中的最大值、最大值的个数、最小值和最小值的个数

函数名称: max_ and_ min(list)

输入参数: list整数数组

输出: list整数数组,有四个值,分别表示最大值、最大值的个数、最小值和最小值的个数

  • 示例: max and. min([1,4,21,5,6,1,1]) => [21,1,1,3]
  • max_ and. min(1]) => [1,1,1,1]

def max_and_min(a):b = sorted(a, reverse=True)max = b[0]max_num = b.count(max)min = b[-1]min_num = b.count(min)return [max, max_num, min, min_num]a = [5, 5, 5, 4, 3, 2, 2]
print(max_and_min(a))
# 执行结果:[5, 3, 2, 2]

65、字符串右补齐,根据len长度补齐str到src中

函数名称: rpad(src,len,str)

输入参数::src原字符串, len目标字符串长度, str用来填充的字符串

输出:补齐后的字符串

示例:

  • rpad ("abcd",10,"12") =>"abcd121212"
  • rpad ("abcd",11,"12") =>"abcd1212121"
  • rpad ("abcd",10,"12") =>"abcd121212”
  • rpad ("abd",12,"0") =>*"bd0000000”
  • rpad ("abcd",12,") =>"abcd

66、基于Web端呈现的产品可以如何做自动化测试,谈谈你的思路和方向。

参考:

  • web端的自动化测试,基本就是模拟手工测试人员来做功能测试。
  • 用机器的自动执行代替人的操作。
  • web端呈现的产品有两个方向可以做自动化测试:接口层和界面操作层,且接口层自动化的比例要高于界面操作层。
  • 并且主要对产品稳定的功能进行自动化测试,主要用于产品的核心功能冒烟测试、回归测试。
  • 从系统最最核心的功能开始做,再根据情况慢慢铺开。

67、请描述实现用户登陆模拟自动化测试的思路

参考:

基于用户登陆的自动化测试思路:

  • 使用 python+selenium 框架来编写登陆的所有测试用例,
  • 使用unittest框架来组织测试用例。
  • 使用Htmltestrunner来形成html版的测试报告,并使用邮件模块来发送测试报告给项目组相关人员。

最后:【我以前的自学资料希望能帮助到你】

有需要可以找我帮忙改简历,我比较认可的小伙伴也可以帮忙做一下内推。感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,如何发现小编有什么不对的或者有更好的建议,希望大家在评论区积极留言!!!【兄弟们,面试题不好发你们想要的话直接点下面小卡片喔】

相关文章:

2023最新软件测试面试题【1000道题含答案】

1、自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果&#xff0c;如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化测…...

【目标跟踪】MOT数据集GroundTruth可视化

MOT数据集格式简介 MOT15数据集下载&#xff1a;https://pan.baidu.com/s/1foGrBXvsanW8BI4eybqfWg?pwd8888 以下为一行gt示例&#xff1a; 1,1,1367,393,73,225,1,-1,-1,-1 各列数据对应含义如下 <frame>,<id>,<bb_left>,<bb_top>,<bb_width&g…...

软件测试的概念与过程----学习软件测试前的思考

软件测试的概念与过程----学习软件测试前的思考 1、软件测试工作是做什么的&#xff1f;2、那我做软件测试拿到一个软件产品我应该从哪里测试&#xff0c;怎末开始工作&#xff1f;3、测试早做好还是晚一些做好&#xff1f;4、软件测试能将软件测试的一点问题都没有嘛&#xff…...

Streamlit基础教程

streamlit是什么 streamlit是一个开源的python库&#xff0c;它能够快速的帮助我们创建定制化的web应用&#xff0c;而且还非常便于和他人分享&#xff0c;特别是在机器学习和数据科学领域。整个过程不需要你了解任何前端的知识&#xff0c;包括html、css、javascript等&#x…...

内网穿透技术

文章目录 前言1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 转载自内…...

计算机网络笔记:内部网关协议RIP

文章目录 1.协议RIP的工作原理2.距离向量算法3.坏消息传播得慢 1.协议RIP的工作原理 RIP的地位&#xff1a;RIP是内部网关协议IGP中最先得到广泛使用的协议&#xff0c;其中文译名为路由信息协议。 RIP概述&#xff1a; RIP是一种分布式的基于距离向量的路由选择协议&#x…...

基于Java学生信息管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…...

PHP简单入门

PHP是一种流行的服务器端编程语言&#xff0c;被广泛用于Web开发。许多著名的网站和应用程序都是使用PHP编写的&#xff0c;例如Facebook、Wikipedia和WordPress等。本篇文章将为您介绍如何入门PHP编程。 环境配置 在开始使用PHP之前&#xff0c;需要先配置开发环境。要在本…...

java 客户端操作HDFS

1、windows上部署hadoop包 部署包win版本 源码包zip包 lib整合&#xff1a;共121个jar包 $HADOOP_PREFIX/share/hadoop/{common,hdfs,mapreduce,yarn,tools}/{lib,.}*.jar 将windows版本hadoop/bin/hadoop.dll 放到c:/windows/system32下 2、windows环境变量配置 hadoop的…...

区块链中的共识机制以及共识算法

目录 什么是共识 什么是共识机制 共识机制类型 1、基于工作证明(Proof of Work PoW)...

【计算机网络自顶向下】DNS简答题总结

主要功能&#xff1a;将域名解析为主机能识别的IP地址 DNS实现的功能 主机到IP地址的转换主机别名的转换邮件服务器别名负载均衡 DNS实现冗余服务器&#xff1a;一个IP地址集合对应同一个规范主机名 域名系统 分布式数据库&#xff1a;一个由多层DNS服务器实现的分布式数据库应…...

【QQ界面展示-实现自动回复 Objective-C语言】

一、刚才咱们监听键盘弹出事件,是怎么监听的, 1.监听键盘弹出事件的步骤 1)首先,在控制器的viewDidLoad方法中,创建一个NotificationCenter对象啊 2)通过center,让当前控制器的这个方法,监听这个通知, 3)然后,我们在这个通知里面,获取到键盘的Y值, 4)对我们的…...

-bash: ssh: command not found

解决方法&#xff1a; 命令安装SSH&#xff1a; yum -y install openssh-clients [roothad2 ~]# yum -y install openssh-clients Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.qlu.edu.cn * extras: mirrors.ustc.edu.cn …...

ansible的部署和模块

一、 ansible 的概述 1、ansible简介 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成&#xff0c;类似于saltstack和Puppet&#xff0c;但是有一个不同和优点是我们不需要在节点中安装任何客户端。 它使用SSH来和节点进行通信。Ansible基于 …...

nginx的优化

目录 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 二 nginx的优化之日志分割 三 nginx的优化之页面压缩 四 连接超时 五 nginx的并发设置 七总结:nginx的优化 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 如图所示 第一种方法是关…...

MySQL8超详细安装教程

MySQL的下载与安装 一、MySQL8下载 MySQL Community Server 社区版本&#xff0c;开源免费&#xff0c;自由下载&#xff0c;但不提供官方技术支持&#xff0c;适用于大多数普通用户。 MySQL Enterprise Edition 企业版本&#xff0c;需付费&#xff0c;不能在线下载&#x…...

【FPGA入门】第五篇、按键消抖

目录 第一部分、按键抖动现象 第二部分、消抖思路及代码 1、简单的按键消抖思路 2、实际按键消抖思路 3、实际按键消抖模块代码 第三部分、总结 第一部分、按键抖动现象 只要学习过单片机的都会知道&#xff0c;按键在按下去和松开的那个瞬间都存在抖动&#xff0c;在单片…...

【MySql】MySql的事务基础篇

文章目录 CURD加控制什么是事物为什么会出现事务事务的版本支持事务的提交方式 CURD加控制 模拟一个买票系统的场景如下所示&#xff1a; MySQL注定会被多个客户端进行访问的&#xff0c;这个是肯定的&#xff0c;存储的都是数据&#xff0c;数据在上层可能有一个线程在用&…...

docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接

题目&#xff1a;docker创建Ubuntu&#xff0c;Ubuntu创建桌面环境&#xff0c;本机使用VNC连接 文章目录 前言docker创建基于Ubuntu:20.04的容器使用ssh连接容器容器安装桌面环境本机电脑使用VNC连接测试用python来创建的ui能否显示坑参考 前言 为什么我想要用ubuntu的桌面环…...

理解redis的多线程和IO多路复用

参考资料 https://blog.csdn.net/TZ845195485/article/details/119745735 Redis单线程和多线程问题的背景 Redis里程碑版本迭代 Redis的单线程 主要是指Redis的网络IO和键值对读写是由一个线程来完成的&#xff0c;Redis在处理客户端的请求时包括获取&#xff08;socket读&a…...

iOS 开发 | 自定义不规则 label

把我之前发布在简书的博客搬运过来。 目录 场景思路具体实现1. 自定义一个继承自UILabel的IrregularLabel2. 在初始化方法中进行相应初始化和设置3. 在layoutSubviews方法中进行路径的设置 最终效果箭头 label 场景 最近 App 改版&#xff0c;以下是截取的部分 UI 设计图&…...

client-go的Indexer三部曲之三:源码阅读

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 《client-go的Indexer三部曲》全部链接 基本功能性能测试源码阅读 本篇概览 本文是《client-go的Indexer三部曲》系列的终篇&#xff0c;主要任务是阅读和…...

收件地址解析成 省+市+区+详细地址的形式

项目中的源代码在我的GitHub&#xff1a;https://github.com/weitw/address-analyzer 先看效果&#xff1a; 如上图&#xff0c;address数输入的地址&#xff0c;Address对象是解析后的地址。可以支持逆推上一级&#xff0c;且支持地址白话解析。 一、项目介绍 1、解析规则 …...

数据结构与算法基础(青岛大学-王卓)(5)

叮叮咚咚&#xff0c;新一期来袭&#xff0c;我还在吃桃子&#xff0c;吃桃子&#xff0c;吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list 文章目录 串(string) - 字符串概念及术语串的类型定义存储结构&#xff08;同线性表&#xff09;串的模式匹配算法…...

微信小程序开发入门学习01-TDesign模板解读

目录 1 使用模板创建小程序2 app.json3 页面布局总结 原来我们使用微信开发者工具&#xff0c;比较困难的是前端框架的选择上&#xff0c;官方也没有提供一套框架供我们使用&#xff0c;最近开发者工具已经提供了一套前端框架&#xff0c;后续我们开发的效率会因为使用模板提高…...

使用 Jetpack Compose 创建自定义的对话框(Dialog)

在 Jetpack Compose 中&#xff0c;对话框&#xff08;Dialog&#xff09;是一种常见的用户界面组件&#xff0c;用于展示重要的信息、确认操作或者收集用户输入。本篇博客将带你深入了解 Jetpack Compose 中的对话框&#xff0c;并展示如何创建自定义的对话框&#xff0c;以满…...

c++ auto学习笔记

一、auto的意义 在C11中赋予auto的意义是&#xff1a;在声明变量时&#xff0c;根据初始化表达式自动推断该变量的类型。声明函数时作为函数返回值的占位符&#xff08;用在函数返回类型后置的情况&#xff09;。 如 auto i 6; //auto推断为intauto func()->int //函数返…...

【随机种子初始化】一个神经网络模型初始化的大坑

1 问题起因和经过 半年前写了一个模型&#xff0c;取得了不错的效果&#xff08;简称项目文件1&#xff09;&#xff0c;于是整理了一番代码&#xff0c;保存为了一个新的项目&#xff08;简称项目文件2&#xff09;。半年后的今天&#xff0c;我重新训练这个整理过的模型&…...

翻过那座山——Gitlab流水线任务疑难之编译有子模块的项目指南

&#x1f4e2;欢迎点赞 &#xff1a;&#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff0c;赐人玫瑰&#xff0c;手留余香&#xff01;&#x1f4e2;本文作者&#xff1a;由webmote 原创&#x1f4e2;作者格言&#xff1a;新的征程&#xff0c;我们面对的不是…...

手机照片删除后如何恢复

在如今移动互联网和智能手机时代&#xff0c;拍摄照片已经成为了人们常见的一种生活方式&#xff0c;尤其是通过手机拍摄照片已经成为了许多人记录生活点滴、分享经验和表达情感等的必备工具。但是&#xff0c;随着手机照片量的激增&#xff0c;意外删除手机中珍贵照片的事件也…...