136、137-登录态接口bug+138、139、140、141-用例部分bug +分页

参考大佬文章:136
137
138
139
141

翻页

136–切割可能遇到的情况

在这里插入图片描述

137–新建项目登录态接口的bug

打开新项目的登录态接口的弹层时,各个字段输入框显示undefined
因为项目一开始设置的是没有登录态时返回空字典
修改:
在这里插入图片描述

新建项目的登录态接口无法保存,因为一开始设置的保存函数中用的update方法,即默认原来有登录态接口数据

修改:(其中查询字段可以是多个)

数据表.object.update_or_create( 更新用的字典,查询的字段 )

在这里插入图片描述

登录态接口请求报错:
因为默认的返回值格式是json,实际上返回值不为json时会“Expecting value”

修改:
在这里插入图片描述
补充默认字段:
在这里插入图片描述

138–大用例登录态干扰bug–复现设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

139–用例bug复现

在这里插入图片描述
重启服务:
在这里插入图片描述
在这里插入图片描述
解决思路:
1.隔离,用大用例id标记变量,防止其他大用例使用
2.变换当前存放变量和判断思路,从缓存中改到数据库存储

先一后二

140

制定:不允许 同一个大用例 的重叠运行。也就是说,必须等前一次执行完 ,才可以执行下一次
要在项目A结尾的时候,清理掉自己的登陆态。 然后再执行项目A的时候 又会重新生成新的了

141–解决

解决方案:

  1. 设置一个登陆态存放的列表,删掉自己用例id的登陆态就可以

  2. 设置一个字段,放在数据库的用例表中,执行开始时候修改为1,执行结束或报错收尾都修改为0,重叠执行的时候先判断 是否为0,如果不为0 则返回说该用例正在运行中,请稍后再启动!

  3. 不再用一个字典作为登陆态login_res的内容,而是改造成一个列表,所有的大用例的登陆态都在里面存放,靠着用例id区分,互相不再影响。删除自己的也好删除。使用的时候 就直接去这个列表中搜索,搜不到就创建新的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 登陆态代码:
            api_login = step.api_login  # 获取登陆开关
            if api_login == 'yes':  # 需要判断
                Case_id = DB_step.objects.filter(id=step.id)[0].Case_id  # 先求出当前执行step所属的case_id
                global login_res_list  # 新建一个登陆态列表
                try:
                    eval('login_res_list')
                except:
                    login_res_list = []  # 判断是否存在,若不存在,则创建空的,一般只有平台重启后才会触发一次

                # 去login_res_list中查找是否已经存在
                for i in login_res_list:
                    if i['Case_id'] == Case_id:  # 说明找到了.直接用。
                        print("找到了")

                        login_res = i
                        break
                else:  # 说明没找到,要创建
                    print("没有")
                    from Myapp.views import project_login_send_for_other
                    login_res = project_login_send_for_other(project_id)
                    login_res['Case_id'] = Case_id  # 给它加入 大用例id 标记
                    login_res_list.append(login_res)

                # 运行到这的时候,可以肯定已经有了这个login res了
                print(login_res)

                ## url插入
                if '?' not in url:
                    url += '?'
                    if type(login_res) == dict:
                        for i in login_res.keys():
                            url += i + '=' + login_res[i] + '&'
                else:  # 证明已经有参数了
                    if type(login_res) == dict:
                        for i in login_res.keys():
                            url += '&' + i + '=' + login_res[i]
                ## header插入
                if type(login_res) == dict:
                    header.update(login_res)
            else:
                login_res = {}

            ## 输出请求数据
            print('\n')
            print('【url】:', url)
            print('【header】:', json.dumps(header))
            print('【method】:', api_method)
            print('【body_method】:', api_body_method)
            print('【body】:', api_body)

分页

安装分页相关的库,并在views文件中导入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值