如何在 Python 中为注册页面创建测试脚本?
Posted
技术标签:
【中文标题】如何在 Python 中为注册页面创建测试脚本?【英文标题】:How to create a test script in Python for a registration page? 【发布时间】:2014-03-21 06:41:37 【问题描述】:我有一个用 php 制作的网站。
为了增加数据库中的数据集数量,我需要创建一个 python 脚本,这样我就不需要手动添加 500 个注册。
有几种工具可用,但我需要创建自己的脚本。
谁能帮我解决这个问题?
PS:我也懂 PHP、Python 和 ASP.NET。
【问题讨论】:
用 PHP 编写测试代码会更容易。获取一个测试框架(或自己制作),并使用它来调用注册用户的代码。 @Asad,我想要编写 Python 脚本的原因是我的下一个项目将在 Python 上进行,所以迟到总比没有好。 “我有 Python 知识”,但是你问了一个关于 Python 的基本问题,却没有告诉我们你使用的是什么数据库引擎? mysql? 【参考方案1】:MySQL
import MySQLdb
db = MySQLdb.connect(host="localhost", user="john", passwd="megajonhy", db="jonhydb")
cursor = db.cursor()
for i in range(0,500):
cursor.execute("INSERT INTO MyTable VALUES('Some string', 1337);")
PostgreSQL
import postgresql
db = postgresql.open("pq://postgres:SupaPass@127.0.0.1/testdb")
prepstatement = db.prepare("INSERT INTO MyTable VALUES($1, $2, $3);")
with db.xact():
for i in range(0, 500):
prepstatement('Some string', 1337, ["a", "list"])
MsSQL
import pyodbc
cnxn = pyodbc.connect('DRIVER=SQL Server;SERVER=localhost;DATABASE=testdb;UID=user;PWD=pass')
cursor = cnxn.cursor()
for i in range(0, 500):
cursor.execute("INSERT INTO MyTable VALUES('Some string', 1337);")
SQLAlchemy
请注意,这是一个可以为您带来很多魔力的库,因此您可能不会从中学到太多东西或渴望它的所有功能。
from sqlalchemy import create_engine
db = create_engine("mssql://me:pass@localhost/testdb")
for i in range(0, 500):
db.execute("INSERT INTO MyTable VALUES('Some string', 1337);"):
如何获取 POST/GET 数据
最后,我们不知道您是如何运行脚本的。 但是您提到了 Web 开发,假设您将脚本作为 CGI 运行,以下是获取 POST/GET 数据的方法:
import cgi
form = cgi.FieldStorage()
print form["username"]
让我帮你谷歌一下
How are POST and GET variables handled in Python? How do I connect to a MySQL Database in Python? How to insert array of data into mysql using php MSSQL in python 2.7【讨论】:
【参考方案2】:您会在此页面中找到很多 Web 测试工具:https://wiki.python.org/moin/PythonTestingToolsTaxonomy#Web_Testing_Tools
不过我想推荐另一个 python 模块。
我知道脚本python会访问你的网页,它会模拟一个人的注册,如果这个假设是正确的,你可以使用“requests”模块,它不是一个测试工具,而是一个访问和恢复 Web 内容的非常简单的方法,例如:
您可以管理http会话(来源:http://docs.python-requests.org/en/latest/user/advanced/#session-objects):
s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update('x-test': 'true')
# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers='x-test2': 'true')
任何身份验证方法(来源:http://docs.python-requests.org/en/latest/user/authentication/):
>>> from requests.auth import HTTPDigestAuth
>>> url = 'http://httpbin.org/digest-auth/auth/user/pass'
>>> requests.get(url, auth=HTTPDigestAuth('user', 'pass'))
<Response [200]>
【讨论】:
以上是关于如何在 Python 中为注册页面创建测试脚本?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建登录和注册表单并在 Java 和前端 js 中为其后端创建测试?
postman测试注册页面接口测试时,返回注册页面的html,但浏览器测试时可以正常返回返回值?