你的测试方法 f 是空的?
认真观察一下,好像是圆角
了解了,如果要上容器编排会注意这个配置。
如果是业务相关的,依赖基本上是跑不掉吧?
我这边的接口三四层依赖的都有呢,但是能稳定地跑就行了啊,你做自动化的目的不就是为了稳定回归么
参数不稳定 -- 是输入参数不稳定,还是输出参数不稳定?
分批测试有什么问题呢? 如果所有模块一起提测,你就不用分先后顺序了吗?
项目时间紧的情况下,相对于全部一起提,分批提测下测试执行的时间更为充足。相对于提前介入了
看你的 192.168.1.102:8000 是不是有中文字符(:), 正常的英文字符应该是 192.168.1.102:8000
只要是在线上发现的 bug ,不管有没造成损失,都是自己的工作失误(给线上带来了风险),这块我觉得计算到绩效是没什么好说的;
不过我们一般会按严重级别来计算。
要保证 0 事故? 感觉除了杀个 XX 祭天或者勤快点拜拜之外没绝对保证的办法
你确定格式没错吗? --alluredir 后面是要指定目录的吧?
你的命令格式对吗?
我是这么用的:
pytest.main([test_folder,'--alluredir=%s' %(report_path),'-o log_cli=true -o log_cli_level=INFO'])
def get_result(number_list):
first,last = 0,0
lenth = len(number_list)
for i in range(1,lenth):
# print(lenth, i , lenth-i)
if number_list[i]==0 or number_list[lenth-i]==0:
if first ==0 and number_list[i]==0:
first = number_list[i-1]
print('found first :' ,first)
if last ==0 and number_list[lenth-i]==0:
last = number_list[lenth-i+1]
print('found first :', last)
if first == 0:
print('no 0 in the list')
# number_list = [-3,-2,-1,0,0,0,0,7,0,0,0,0,6,8,7]
number_list = [-3,-2,-1,0,6,8,7]
# number_list = [-3,-2,-1,6,8,7]
# number_list = [-2,-1,0,6,0,0,7,0,8,14,22]
get_result(number_list)
UI 有 UI 的验证呢,和接口是互补的
我们使用的情况:
这种话题一年要撕多少次啊?
如果是必填项验证、签名校验等公共性的用例,可以考虑提取成公共的方法,不用每个接口都写一遍,应该可以节省一些工作量。
这样可以把重点放在覆盖业务逻辑上了
你的文件不能起名叫 appium.py , 这样 import 的时候会变成了从 appium.py 里找 webdriver
文件名不要和对应的模块重复
地点?
记得 360 、猎豹都可以分享 PC 端的 wifi 给手机使用吧?
最终编译出来就是一些 html 、js、 css 文件啊, flask 本身就是一个容器,所以直接把这些文件放到 flask 的静态文件目录里调用就可以了
mod route 就是控制路由
@mod.route('/save_test_minder_content.json', methods=['POST', 'GET'])
@user.authorize
def save_test_minder_content():
意思你访问 /save_test_minder_content.json ,就会跑到 save_test_minder_content() 方法里
你可以研究下 ajax 如何跨域
我是直接放在 flask 里面的,没有启动新的服务,所以没有跨域的问题
大致的流程:
后台的保存吗?
@mod.route('/save_test_minder_content.json', methods=['POST', 'GET'])
@user.authorize
def save_test_minder_content():
log.log().logger.info(request)
if request.method == 'GET':
log.log().logger.info('post')
return redirect("/test_minders")
if request.method == 'POST':
info = request.values
log.log().logger.info('info :%s' %info)
id = viewutil.getInfoAttribute(info,'id')
content = viewutil.getInfoAttribute(info,'content')
minder_id = ''
if content == '':
message = '必填字段不得为空!'
code = 500
else:
test_minder_manage.test_minder_manage().update_test_minder(id=id, fieldlist=['content'],valueList=[content])
message = 'success!'
code = 200
result = jsonify({'code': code, 'msg': message})
log.log().logger.info(result)
log.log().logger.info('code is : %s'%code)
return result