如何在 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 中为其后端创建测试?

如何在python中为相同的并行机器创建甘特图?

postman测试注册页面接口测试时,返回注册页面的html,但浏览器测试时可以正常返回返回值?

在 Facebook Graph Explorer 中为测试用户创建测试页面

python脚本学习一:测试布尔型盲注脚本

使用编码的 UI 脚本进行负载测试:如何在负载测试中为多个用户运行编码的 UI 脚本