python 接口测试笔记2[更新版]

之前一篇ai接口笔记(python request接口测试笔记(1)),里面有几个小问题

  1. 每次运行代码都需要清空之前已经保存的csv文件,这样比较麻烦~
  2. 如果环境api接口变动,那么需要修改变动的api,代码比较分散~

对于第一个问题,可以随机生成一个文件名,这样每次代码执行,生成的文件名都是不一样的;这里使用了配置文件来解决第二个问题,这样只要在一个地方修改api接口地址即可。

第一个问题的部分代码如下:

    # 生成随机文件名
    localTime = time.strftime("%Y%m%d%H%M%S", time.localtime())
    # print(localTime)
    ai_file_success = "E:\\test\\food\\food_detect_py" + localTime + ".csv"
    ai_fail_file = "E:\\test\\food\\food_detect_fail" + localTime + ".csv"
    ai_error_file = "E:\\test\\food\\food_detect_error" + localTime + ".csv"
    

这样的话,就可以不需要每次都手动更新文件名了~


系统中api的接口和登录的用户名和密码这些对于测试环境和线上环境有些信息是不一样的,所以这里可以使用配置文件进行集中管理,配置文件beta.conf内容如下

[beta]
# 登录url
beta_url = https://localhost:8888/login
#食物识别url
beta_food_detect_url = https://localhost:8888/food_detect
#专业qa的url
beta_qa_url = https://localhost:8888/qa
#new专业qa的url
beta_new_qa_url = https://localhost:8888/newqa
#闲聊url
beta_chit_url = https://localhost:8888/chit
# 食物功效:查询某食物是否能补充营养素或营养素的占比
beta_nutri_food=https://localhost:8888/nfood_qa
# 食物量词的url
beta_query_url = https://localhost:8888/nquery
#运动记录url
beta_sp_url = https://localhost:8888/nparse-unit
#查询食物的营养价值
beta_foods2funcs = https://localhost:8888/n2funcs
#运动动作推荐url
df_url = https://localhost:8888/ai/nlp/v1.0/nrecommend
#登录账号
beta_phone = 18012345678
#登录密码
beta_password = 123456
#登录的app名称
beta_appName = sport
#登录认证
Authorization = Basic ****************

[mysql]
host = localhost
port = 3306
user = root
password = 123456
db = sport

而代码可以这样使用:

    # 读取配置文件
    os.chdir("E:\\test\\food\\ai\\base")


    # 配置文件如果包含 Unicode 编码的数据,需要使用 codecs 模块以合适的编码打开配置文件
    cf = configparser.ConfigParser()
    with codecs.open('beta.conf', 'r', encoding='utf-8') as f:
        cf.read_file(f)
    # cf.read('beta.conf')
    # 返回所有信息
    secs =cf.sections()
    # print(secs)
    # print(type(secs))
    beta = cf.items("beta","beta")
    # 获取登录url
    login_url = cf.get("beta","beta_url")
    # 获取登录的食物检测url
    food_url = cf.get("beta","beta_food_detect_url")
    username = cf.get("beta","beta_phone")
    password = cf.get("beta","beta_password")
    appName = cf.get("beta","beta_appName")
    Authorization = cf.get("beta","Authorization")

这样可以在代码中直接使用login_url等值,而修改只需要在beta.cof中修改即可。

posted @ 2019-11-01 14:11  janehost  阅读(93)  评论(0编辑  收藏  举报