Python-学习中遇到的坑(html、css、js、Django、unittest、pytest)

pyhton学习网址:

https://www.bilibili.com/video/BV1rT4y1v7uQ?p=24&vd_source=8b0b3b9fa5eb6692e45e9e45a52296f6

1. js

1.1 bootstrap

1.1.1 bootstrap.js和bootstrap.bundle.js不能一起放

跟着教程学习的时候,使用下拉导航栏功能的时候点击报错:
Uncaught TypeError: Popper__namespace.createPopper is not a function
原因是没有引用bootstrap.bundle.js
然后我直接把https://v5.bootcss.com/docs/components/navbar/
中的复制过来,还是点不了。
发觉之前我已经引用了bootstrap.js,删掉就好用了。
在这里插入图片描述

1.2 plugins

1.1.1 引用的js,在页面访问时报404

跟着教程下载了apache-echarts-5.4.2-src,然后引用echarts时用不了
原因是
1.先看下引用的JS里面是不是有一堆内容,而不是一个其他引用
2.在Django中script引用的时候 不能把APP的名带上,从static开始才行
在这里插入图片描述在这里插入图片描述

2. Django

1.1 验证码功能check_code

1.1.1 check_code中font_file/font_path = “Monaco.ttf” 必须写绝对地址

font_file=“D:\JetBrains\lianxi\webtest\app01\utils\Monaco.ttf”
不写绝对地址会报错:cannot open resource
在这里插入图片描述

1.1.2 font_file中 \a会出现转义问题 需要在前面加r:

https://blog.csdn.net/yuan2019035055/article/details/126368281
font_file=r"D:\JetBrains\lianxi\webtest\app01\utils\Monaco.ttf"
有转义问题 不加R 会报错:
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 33-34: truncated \uXXXX escape
在这里插入图片描述

1.1.3 media文件夹是和APP文件夹并列的,不是在APP文件夹里

否则会报[Errno 2] No such file or directory: ‘media\Snipaste_.png’
在这里插入图片描述
在这里插入图片描述

3. CSS

3.1 Layui

3.1.1 模态框modal

1.如果父级有modal模态框,在子集也新增了一个模态框,可能会出现子集触发模态框被遮罩层盖住 , 这时候就需要在子集的modal里增加data-backdrop=“false”
例如

在这里插入图片描述
2. 模态框里的form 需要每个子集def list里都带上form = xx 否则父级的内容无法在子集页面展示出来
在这里插入图片描述在这里插入图片描述

4. python自动化接口测试

4.1 unittest

学习网址:https://www.bilibili.com/video/BV1va4y1i76B/?p=1

4.1.1 Fiddler 复制下来的header变成字典模式

参考网址:https://blog.csdn.net/huangwencai123/article/details/89792493
def parse_fidder_cookie(cookie):
itemDict = {}
items=cookie.split(‘\n’)
for item in items:
key = item.split(‘:’)[0].strip()
if key :
value = item.split(‘:’)[1].strip()
itemDict[key] = value
return itemDict
cookie=“”“Device-Id: 00000000-5ae8-e179-a0f9-233a0033c587"”"

4.1.2 python 注释及字符串多行赋值

参考网址:https://blog.csdn.net/qq_41994144/article/details/113978234
“”" “”" 在python中 如果不将注释赋值给变量,则为注释意思,赋值给变量后,变为字符串多行赋值

4.1.3 python中一个def中读取的数据df,如何在另一个def中引用

参考网址:https://blog.csdn.net/weixin_42601702/article/details/129557760
def parse_fidder_cookie(self,cookie):
itemDict = {}
return itemDict

def api_post_login(self,url,itemDict):
    headers = itemDict
    return requests.post(headers=itemDict)

itemDict = ApiLogin().parse_fidder_cookie(cookie)
s = ApiLogin().api_post_login(url,itemDict)

4.1.4 TypeError: xxx() takes 1 positional argument but 2 were given

解决方法:https://blog.csdn.net/ly_qiu/article/details/107665641
在unittest里调用得前置函数(def) 需要里面得参数都有self 例如:def parse_fidder_cookie(self,cookie):

4.1.5 在不同目录引用json文件

假设login.json文件位于zong\fen2 目录下
调用时py文件在主目录下:zong
import json
with open(“fen2/login.json”,“r”,encoding=“utf-8”) as f:
data = json.load(f)
print(“获取的数据为”,data)
在同目录及下属目录或其他非主目录下 例如zong\fen1 、zong\fen1\fen11 、 zong\fen2\fen21
import json
with open(“…/fen2/login.json”, “r”, encoding=“utf-8”) as f:
data = json.load(f)
print(“获取的数据为”,data)

4.1.6 postman接口请求正常,但test.py文件一直请求不通

可能是有缓存,解决方法:https://blog.csdn.net/qq_61485771/article/details/125882003
把unittest自动生成的.pytest_cache删掉,或者执行旁边的文件改为当前文件

4.1.7 There was an error in evaluating the Pre-request Script:JSONError: Unexpected token ‘t’ at 11:24 “timestamp”: {{timestamp}} ^

postman使用Pre-request Script时,如果body中的变量{{timestamp}} 没加“”,就会无法被JSON.parse(body)转化为Json格式
在这里插入图片描述
在这里插入图片描述

5.1 pytest

学习网址:
(1)接口自动化入门:
https://www.bilibili.com/video/BV1LD4y177sc;https://www.bilibili.com/video/BV1py4y1t7bJ
(2)接口自动化框架(本次讲解的框架由此获取并改造):
https://www.bilibili.com/video/BV1vU4y1S7oG
(3)接口自动化-日志封装:
https://www.bilibili.com/video/BV1jN4y1j743
(4)三种自动化(查缺补漏)+性能测试:
https://www.bilibili.com/video/BV1jN4y1C7oA
(5) Json提取教程:
https://www.bilibili.com/video/BV1W8411F7Ax
(6) Json提取练习网址:
http://jsonpath.com/

5.1.1 pytest.main([]) 为什么会在conftest.py前执行了test.py文件的pytest.mark.parametrize

原因:为了更清楚地说明这个过程,以下是发生的事件顺序:
Python 脚本开始执行。
脚本中可能有一个导入语句,如 import test_case,这会触发 test_case.py 文件的执行。
在 test_case.py 文件中,@pytest.mark.parametrize 装饰器立即执行其参数生成函数,例如 ReadFile.read_case(‘case_test_environment/app_test.yaml’)。
如果脚本中有 pytest.main([]) 调用,此时 pytest 开始执行其测试收集阶段。
pytest 加载 conftest.py 文件并运行其中的钩子函数,如 pytest_sessionstart。
pytest 继续收集测试用例,并执行找到的测试。
因此,@pytest.mark.parametrize 中的函数调用会在 conftest.py 中的 pytest_sessionstart 钩子函数执行之前发生。
解决方法: 在总执行文件run.py的pytest.main([]) 上面 进行yaml用例的修改
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值