Linux下API服务接口测试(命令行、脚本) 后台执行及日志保存

目录

1、curl接口测试

2、 Python脚本完成post接口测试脚本

body中带json数据的:

3、运行后访问网页,内容中的中文显示乱码

4、解决python接口测试返回json乱码问题,解决如下:

5、python接口自动化测试五:乱码、警告、错误处理

6、后台运行python程序并标准输出到文件


1、curl接口测试

参考:https://blog.csdn.net/russ44/article/details/53308838

Windows/mac环境上有很多接口测试的工具,如soapui、postman等,但这些工具在linux平台上使用起来相对不那么便捷。有时候当我们要测试一些外部接口时,当本地无权调用测试路径时,需要将测试建立在linux平台,除了封装简单的请求代码进行实现外,可通过curl实现

1、测试get请求

$ curl http://www.linuxidc.com/login.cgi?user=test001&password=123456

2、测试post请求

$ curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi

3、在命令行直接发送JSON结构数据

curl -H 'content-type: application/json' -X POST -d '{"accountType":"4"}' http://192.168.129.xx/AntiRushServer/api/ActivityAntiRush
curl -XPOST -H'Content-Type: application/json' http://0.0.0.0:15663/15663abc/extract_data -d@extrator.json

# extrator.json文件名

响应消息:

{"code":"4000","message":"参数错误:time的值不是UInt"}

2、 Python脚本完成post接口测试脚本

import requests

new_url="http://10.31.143.2:8989/system/systemOrgan/list"
params = {"access_token": "807ad226-cbcc-4620-9544-8f53e1d51405"}
payload = {
  "organId":1,
  "pageNumber":1,
  "pageSize":10,
  "sortBy":"lastUpdateTime",
  "sort":"DESC"}
results = requests.post(new_url, params=params, json=payload).status_code


print(results)

body中带json数据的:

def auto_post(text):
    url = "http://xxx/address"
    # url = ''.join([host, endpoint])
    body = \
        {
            "address": text
        }
    r = requests.post(url=url, data=json.dumps(body))
    result = r.json()
    # print(result)
requests.post(
    url="",
    headers="",
    cookies="",
    data={
    },
    params={"k1": "v1", "k2": "v2"},
    # url中传递的参数,效果如下
    # http://www.baidu.com?k1=v1&k2=v2
)
 
# 我们可以通过data传递请求体,也可以通过json传递请求体
data = {
        "username":"admin",
        "pwd":"admin"
       },
 
# 则请求体中的数据为username=admin&pwd=admin
 

# 参数json
json = {
        "username":"admin",
        "pwd":"admin"
       },
 
# 则请求体中的数据为{"username":"admin","pwd":"admin"}

 requests.post():

https://www.cnblogs.com/puresoul/p/7488700.html 

3、运行后访问网页,内容中的中文显示乱码

解决方式:

给app配置app.config[‘JSON_AS_ASCII'] = False,即:

if __name__ == "__main__":
    app.run(host='127.0.0.1', port='8080')

变为: 

if __name__ == "__main__":
    app.config['JSON_AS_ASCII'] = False
    app.run(host='127.0.0.1', port='8080')

4、解决python接口测试返回json乱码问题,解决如下:

req = requests.post(url="http://192.168.229.128:8080/cms/manage/loginJump.do",
                            data={"userAccount": "admin", "loginPwd": "123456"})
 results = req.json()
 print(json.dumps(results, sort_keys=True, indent=2, separators=(',', ': '), ensure_ascii=False))   
 # indent 是间隔长度,ensure_asccii解决编码问题

5、python接口自动化测试五:乱码、警告、错误处理

https://www.cnblogs.com/zhongyehai/p/9159552.html

6、后台运行python程序并标准输出到文件

现在有test.py程序要后台部署, 里面有输出内容,想把日志文件输出到test.log文件

使用命令:

nohup python -u test.py > test.log
# 正常执行的结果将被保存至.log文件;报错信息将打印至屏幕。
nohup python -u test.py > test.log 2>&1 &

# 最后的&表示后台运行
# 2 输出错误信息到提示符窗口
# 1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件

解释: 

1、nohup

  1. nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup。
  2. nohup在不规定的情况下,所以输出内容会到nohup.out中

2、2>&1

  1. 0 表示stdin标准输入,用户键盘输入的内容
    1 表示stdout标准输出,输出到显示屏的内容
    2 表示stderr标准错误,报错内容
  2. 2>&1是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
  3. 2>&1中的&是为了区别文件1和1(标准输出),假如为2>1,那么就成了将错误内容输出到文件1中。

查看

  • tail -f test.log如果要实时查看日志文件使用命令
  • cat test.log查看全部输出使用命令

参考:https://blog.csdn.net/weixin_42840933/article/details/85780125

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令行中使用API接口可以通过curl命令来实现。curl是一个功能强大的命令行工具,可以用于发送HTTP请求并获取响应。下面是一个使用curl发送API请求的示例命令: curl -X POST -H 'Content-Type: application/json' -d '{"key1":"value1", "key2":"value2"}' http://api.example.com/endpoint 在上面的命令中,我们使用了-X参数指定请求的方法为POST,-H参数指定请求头的Content-Type为application/json,-d参数指定请求体的内容为一个JSON结构。最后,我们指定了API的URL。 你可以根据实际情况修改命令中的请求方法、请求头、请求体和URL来适应你的API接口的要求。 #### 引用[.reference_title] - *1* *3* [LinuxAPI服务接口测试命令行脚本后台执行日志保存](https://blog.csdn.net/weixin_44285715/article/details/111163422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [通过简单命令行就可测试API接口](https://blog.csdn.net/hymn_com/article/details/128486148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值