【自动化】自动化修炼之路

    技术2022-07-11  69

    问题1:mysql与DB2注释语法不一致,导致自动化脚本运行失败。

    写于:2020年7月1日

    描述:

    我之前接触的数据库都是mysql,经常使用#添加单行注释,最近接触新的项目,使用的是db2,当我为db2的sql脚本添加#注释时,运行报错。

    原因分析:

    每种数据都有自己独特的地方,比如db2不能用#添加单行注释

    解决办法:

    db2SQL脚本添加单行注释时,使用–,而不是使用#

    充电知识:mysql注释写法

    单行注释:1)两条横线,mysql中通用的方式,一般都用这个: – 内容(最后一条横线后有空格);2)也可以使用#多行注释:/* 内容 */字段注释:字段或列的注释是用属性comment来添加

    问题2:接口返回数据与数据库保存精度不一致问题,导致对比出错

    写于:2020年7月2日

    问题3:将数据库查询结果由0变为null

    写于:2020年7月13日

    描述:

    统计数据库评论记录数,当没有评论记录时,接口返回:null,而数据统计值为0,为了接口自动化对比成功,所有需要将查询结果由0变为null

    原因分析:

    接口和数据库对空值处理方式不一致

    解决办法:

    使用 case when xx then yy方式可以解决

    举例:
    select case when count(1)=0 then null else count(1) end as count from student where class_code='007';

    问题4:python路径相关问题

    写于:2020年8月12日

    描述:

    在使用python做自动化是,用pycharm运行脚本没有问题,但是用RF调用函数,却出现: FAIL : AttributeError: ‘str’ object has no attribute 'items’错误

    原因分析:

    没有找到有效的sql和yml文件

    解决办法:

    程序自动获取绝对路径,注意以下两种获取路径的区别

    举例:
    import os # 获取当前目录 curdir = os.path.abspath(os.curdir) ymlandsqldir = os.path.join(curdir, 'YmlAndSql') #ymlandsqldir='D:\Programe Files\pycharmworkspaces\DWindBellProject\InterfaceAuto\WorkManage\YmlAndSql' print(ymlandsqldir) #获取绝对目录 config_path = os.path.split(os.path.realpath(__file__))[0] ymlandsqldir = os.path.join(config_path, 'YmlAndSql') print(config_path)

    RF运行打印的目录有关信息: Starting test: 工作管理.申诉.总行.testcase1 20200812 20:33:03.411 : INFO : C:\Users\it05194\Desktop\客户体验监测系统\工作管理\YmlAndSql D:\Programe Files\pycharmworkspaces\DWindBellProject\InterfaceAuto\WorkManage

    问题5:RF中,运行有依赖的py文件失败,如何解决?

    写于:2020年8月12日

    描述:

    在RF中,引用A.py文件,但是A.py文件又引用自定义B.py,在RF中运行A.py文件中函数失败

    原因分析:

    python解释器没有找到B.py文件

    解决办法:

    1.在site-package下新建一个.pth文件,然后再.pth文件中写明B.py文件目录,可以写多个目录 2.添加临时路径: import os import sys

    sys.path.append(‘D:\Programe Files\pycharmworkspaces\DWindBellProject’) 3.在项目初始文件中,写明引用路径

    举例:
    import sys import os config_path = os.path.split(os.path.realpath(__file__))[0] #print(config_path) sys.path.append(config_path)

    Processed: 0.014, SQL: 9