使用Python发送http请求访问window ntlm站点

背景描述

由于需要写自动化代码发送http请求访问windows domain的站点,然而登陆的方式与Form表单不一样,所以需要借助第三方的类库来协助,由于使用了NTLM所以要下载python NTLM相关类库进行安装。只要实现window 域账户身份认证,采用python编程语言,就可以完成对该站进行开发自动化脚本或者是性能测试脚本。

安装软件环境

  • Python2.7

https://www.python.org/downloads/release/python-2715/

  • Requests-ntlm

https://github.com/requests/requests-ntlm

下载后进入相应的目录,运行命令进行安装requests-ntlm

  • ntlm-auth

https://github.com/jborean93/ntlm-auth

下载后进入相应的目录,运行命令进行安装ntlm-auth

  • cryptography

https://pypi.python.org/pypi/cryptography

下载后进入相应的目录,运行命令进行安装cryptography

测试站点

使用Python发送http请求访问window ntlm站点_第1张图片

python ntlm代码

#!/usr/bin/env python

#-*- coding:utf-8 -*-

import requests

from requests_ntlm import HttpNtlmAuth

session = requests.Session()    #自动处理cookies

session.auth = HttpNtlmAuth('music\\liudehua','andyliu')

r = session.get("http://10.190.130.85:8004")

c = session.get("http://10.190.130.85:8004/Case/Enquiry/Index?caseID=8702962")

print('cookie1: '+session.cookies['fans.music.CookieC1'])

print('cookie2: '+session.cookies['fans. music.CookieC2'])

print(c.text)

 

在实践过程也并非一切顺利,由于代码中添加注释,运行编码时会遇到SyntaxError: Non-ASCII character的问题。

SyntaxError: Non-ASCII character

异常信息:

  File "D:\AutoRunner\NtlmDemo\com\ntlm\http\__init__.py", line 5

SyntaxError: Non-ASCII character '\xe8' in file D:\AutoRunner\NtlmDemo\com\ntlm\http\__init__.py on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

 

原因:

由于代码中加入了  #自动处理cookies的注释,到时运行是错误,修改设置运行的编码。

参考资料:http://python.org/dev/peps/pep-0263/ for details

解决方法:在代码中加入#-*- coding:utf-8 -*-

 

你可能感兴趣的:(软件测试理论,性能测试,接口测试,自动化测试)