测试开发03

unittest怎么实现结果对比

通过断言对结果进行对比
unittest常用的断言有assertrqual、assertnotequal等等

setup、teardown的作用

setup是测试前的准备工作,每条用例代码执行前都会先执行一次setup
teardown是测试结束后的清理

http的请求内容包含什么,cookie放在哪里,怎么抓包

请求包含url,请求方法,状态码,请求头,请求体
cookie一般放在请求头
F12 fidder

urllib

urllib是python3的库,内置了一些操作http请求的方法,
更优的选择是requests,python的第三方库,封装了urllib,更易简单使用

json和“python的字典”有什么区别

json是一种数据传输的格式
字典是python内置的一种数据结构
json强制规定双引号
python dict单引号双引号均可
json的keyvalue必须是字符串
python字典的keyvalue可以是任何哈希的对象

网络传输需求格式为json,在python中写的是字典,应该怎么办

用json库进行转换
json.loads
json.dumps

json.loads与json.dumps的区别

json.dumps是将特定格式的数据转换为json字符串类型,比如列表字典都可以进行字符串化操作然后写入json的file,如果写入json文件必须进行dumps操作
json.load是将json字符类型数据转换为原来的数据格式,如列表和字典,原本是什么格式就还原成什么格式

在函数的内部引用了外部非全局作用域的变量,举例:

闭包
如装饰器
自动化测试经常用到装饰器,如在登录、打日志。输出时间等等的情况

类的魔法方法

以双下划线开头和结尾的方法就是类的魔法方法
最常用的:__init__用来初始化类
其他:str,__call__等等

类的实例化方法第一个参数是什么?必须是这个单词吗?意义?

类的实例化方法第一次参数是self,不一定必须是self,可以任意
类的实例化方法的意义是类自身实例化出的对象
也有可能第一个参数是cls,该种类的方法,需要加装饰器@classmethod
也有可能没有,该种是静态方法,需要加装饰器@staticmethod

python能否利用多核CPU的优势

不能,python内置; 全局解释器锁(GIL),同一时刻只能有一个线程在运行

python多线程适合的场景

io密集型-爬虫等等

thread与threading

threading更先进,有更好的线程支持
thread模块的同步原语很少,只有一个,threding很多
thread模块对于进程何时退出没有控制。主线程结束,子线程随即强制结束

join()的作用

在子线程完成运行之前,子线程的父线程将一直被阻塞,主线程会在所有非守护线程退出后退出

python多线程需要锁吗,有全局解释器锁(GIL)在,同一时刻只能运行一条线程,不会有多线程同时修改数据的情况产生,为什么还要加锁

需要锁,因为很多操作不是原子操作

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐